powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / сверхдлинное целое число
18 сообщений из 18, страница 1 из 1
сверхдлинное целое число
    #35082711
для оперирования (*+) со сверхдлинными целыми числами эффективнее всего использовать массив строк? или есть альтернативные методы?

Учись так, как будто тебе предстоит жить вечно; живи так, как будто тебе предстоит умереть завтра.
Бисмарк
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35082862
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
побитово?
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35083038
temperature457
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кострюков Артёмдля оперирования (*+) со сверхдлинными целыми числами эффективнее всего использовать массив строк? или есть альтернативные методы?
Эффективнее всего использовать массивы чисел.
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35083175
zloy denпобитово?
подробнее?
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35083224
temperature457
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И складывать их части побитово.

(c) JDK 1.4.2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
    /**
     * Adds the contents of the int arrays x and y. This method allocates
     * a new int array to hold the answer and returns a reference to that
     * array.
     */
     private   static   int [] add( int [] x,  int [] y) {
        // If x is shorter, swap the two arrays
         if  (x.length < y.length) {
             int [] tmp = x;
            x = y;
            y = tmp;
        }

         int  xIndex = x.length;
         int  yIndex = y.length;
         int  result[] =  new   int [xIndex];
         long  sum =  0 ;

        // Add common parts of both numbers
         while (yIndex >  0 ) {
            sum = (x[--xIndex] & LONG_MASK) + 
                  (y[--yIndex] & LONG_MASK) + (sum >>>  32 );
            result[xIndex] = ( int )sum;
        }

        // Copy remainder of longer number while carry propagation is required
         boolean  carry = (sum >>>  32  !=  0 );
         while  (xIndex >  0  && carry)
            carry = ((result[--xIndex] = x[xIndex] +  1 ) ==  0 );

        // Copy remainder of longer number
         while  (xIndex >  0 )
            result[--xIndex] = x[xIndex];

        // Grow result if necessary
         if  (carry) {
             int  newLen = result.length +  1 ;
             int  temp[] =  new   int [newLen];
             for  ( int  i =  1 ; i<newLen; i++)
                temp[i] = result[i- 1 ];
            temp[ 0 ] = 0x01;
            result = temp;
        }
         return  result;
    }
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35083225
temperature457
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c) JDK 1.4.2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
    /**
     * Multiplies int arrays x and y to the specified lengths and places
     * the result into z.
     */
     private   int [] multiplyToLen( int [] x,  int  xlen,  int [] y,  int  ylen,  int [] z) {
         int  xstart = xlen -  1 ;
         int  ystart = ylen -  1 ;

         if  (z ==  null  || z.length < (xlen+ ylen))
            z =  new   int [xlen+ylen];

         long  carry =  0 ;
         for  ( int  j=ystart, k=ystart+ 1 +xstart; j>= 0 ; j--, k--) {
             long  product = (y[j] & LONG_MASK) *
                           (x[xstart] & LONG_MASK) + carry;
            z[k] = ( int )product;
            carry = product >>>  32 ;
        }
        z[xstart] = ( int )carry;

         for  ( int  i = xstart- 1 ; i >=  0 ; i--) {
            carry =  0 ;
             for  ( int  j=ystart, k=ystart+ 1 +i; j>= 0 ; j--, k--) {
                 long  product = (y[j] & LONG_MASK) * 
                               (x[i] & LONG_MASK) + 
                               (z[k] & LONG_MASK) + carry;
                z[k] = ( int )product;
                carry = product >>>  32 ;
            }
            z[i] = ( int )carry;
        }
         return  z;
    }
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35083246
а как разложить-то число из десятичной в двоичную? напоминаю, речь идёт про сверхдлинные числа. у меня исходные данные в десятичной.

Учись так, как будто тебе предстоит жить вечно; живи так, как будто тебе предстоит умереть завтра.
Бисмарк
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35083251
temperature457
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я прикрепил исходники класса, который работает со сверхдлинными целыми числами.
В свое время я пытался разобраться, как это работает, но понял, что мне банально не хватает математического образования.
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35083391
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если пишешь на дотнете то подключи сборку vjslib(кажется), там будет неймспейс вроде java.math. там будет класс BigInteger, думаю он должен нормально работать)
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35083592
Самоловских Виталий aka Kefir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем BigInteger или BigDecimal не подходят?
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35083732
temperature457
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самоловских Виталий aka KefirА чем BigInteger или BigDecimal не подходят?
Лично я так понял, что автор собрался кодировать длинные числа самостоятельно :)
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35084802
фыв
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самоловских Виталий aka KefirА чем BigInteger или BigDecimal не подходят?
наверно длиной
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35097573
Самоловских Виталий aka Kefir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фыв Самоловских Виталий aka KefirА чем BigInteger или BigDecimal не подходят?
наверно длиной
А что не так с длиной?
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35098913
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один тип - для целых, другой - для дробно-десятичных.
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35104013
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самоловских Виталий aka Kefir фыв Самоловских Виталий aka KefirА чем BigInteger или BigDecimal не подходят?
наверно длиной
А что не так с длиной?Маленькая, до 8-ми байт.

temperature457В свое время я пытался разобраться, как это работает, но понял, что мне банально не хватает математического образования.Это просто сложение 2-х целых чисел в столбик :-)

Кострюков Артёма как разложить-то число из десятичной в двоичную? напоминаю, речь идёт про сверхдлинные числа. у меня исходные данные в десятичной.Можно этот пример изменить на сложение чисел, записанных в виде десятичных строк.

Нужно только заменить типы int на char, long на short и практически всё.
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35105693
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько мне известно, BigInteger ограничен только объемом памяти, я лично с помощью него оперировал числами во много тысяч знаков длинной
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35105753
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg Самоловских Виталий aka Kefir
А что не так с длиной?Маленькая, до 8-ми байт.
BigInteger <> BigInt
...
Рейтинг: 0 / 0
сверхдлинное целое число
    #35110193
Самоловских Виталий aka Kefir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg Самоловских Виталий aka Kefir фыв Самоловских Виталий aka KefirА чем BigInteger или BigDecimal не подходят?
наверно длиной
А что не так с длиной?Маленькая, до 8-ми байт.
Я на Java программирую :P
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / сверхдлинное целое число
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]