Size: a a a

2016 May 18

DZ

Dmitriy Z in Rubyata
Рубисты - есть вопрос. Прочитал что Fixnum 30 бит. т.к. старший бит под +/- а младший под FIXNUM_FLAG. Не могу понять когда число становится Bignum после переполнения FIXNUM_FLAG меняется или его можно как-то изначально определить. как этот implementation происходит?
источник

DZ

Dmitriy Z in Rubyata
конечно же если система x32 то 30 бит, если x64 - 60 бит. просто Bignum я как понял может до 320бит число хранить? или я что-то не так понял
источник

KO

Kalys Osmonov in Rubyata
источник

KO

Kalys Osmonov in Rubyata
интересный вопрос
источник

DZ

Dmitriy Z in Rubyata
ага.. просто не могу понять как Bignum устроен и с чем его едят и как его вообше увидеть :)
источник

KO

Kalys Osmonov in Rubyata
4611686018427387903.class
4611686018427387904.class
источник

KO

Kalys Osmonov in Rubyata
работаешь как с обычным integer ом. только в голове нужно держать, что производительность проседает при работе с bignum.
источник

KO

Kalys Osmonov in Rubyata
посмотри на структуру RBignum в статье выше
источник

DZ

Dmitriy Z in Rubyata
это и так понятно ща тестом пытаюсь границу определить в статье не указано
источник

KO

Kalys Osmonov in Rubyata
верхнюю границу?
источник

DZ

Dmitriy Z in Rubyata
ага. 1073741824
источник

DZ

Dmitriy Z in Rubyata
потолок
источник

DZ

Dmitriy Z in Rubyata
1073741823.class => Fixnum
1073741824.class => Bignum
источник

KO

Kalys Osmonov in Rubyata
ОС 32битная?
источник

DZ

Dmitriy Z in Rubyata
x64. а теперь исходя из статьи Bignum это массив из 32bit чисел?
источник

KO

Kalys Osmonov in Rubyata
2.2.4 :020 > 4611686018427387903.class
=> Fixnum
2.2.4 :021 > 4611686018427387904.class
=> Bignum
источник

KO

Kalys Osmonov in Rubyata
2.2.4 :022 > 1073741823.class
=> Fixnum
2.2.4 :023 > 1073741824.class
=> Fixnum
источник

DZ

Dmitriy Z in Rubyata
вот я тоже чёта не въеду почему оно у меня 31бит выдаёт
источник

DZ

Dmitriy Z in Rubyata
должно 62 по идее
источник

KO

Kalys Osmonov in Rubyata
Bignum структура: в нем флаги (знак и тд), размер массива и сам массив из 32х битных элементов.
источник