Я знаю, что Erlang имеет целые числа произвольного размера, но есть ли максимальный предел для одной из стандартных реализаций? Если да, то?
Есть ли ограничение на размер целых чисел Erlang?
Ответы (2)
Erlang использует арифметику bignum, а целые числа в Erlang ограничены доступной памятью на машине. Практически нет ограничений на размер целого числа в Erlang. Взгляните на этот документ: http://erlang.org/doc/efficiency_guide/advanced.html. более подробные пояснения относительно лимитов.
person
fycth
schedule
01.09.2016
Похоже, ограничением является память виртуальной машины, которая составляет 536 870 911 байт (537 МБ) в 32-битной системе и 2 305 843 009 213 693 951 байт (2,3 ЭБ) в 64-битной системе. Поскольку мы можем хранить данные в первых 28 или 60 битах 32- или 64-битного поля, мы должны иметь возможность хранить целые числа примерно до 2 ^ 2 ^ 63,9 или 10 ^ 10 ^ 18,7, учитывая 2,3 ЭБ ОЗУ на 64-битной машине. , или 10 ^ 10 ^ 9, учитывая полгигабайта оперативной памяти на 32-битной машине.
- person Filip Haglund; 14.09.2016
Мне нравится, что используется bignum, но благодаря тегам достаточно маленькие целые числа занимают всего 1 слово (без накладных расходов на память).
- person YvesgereY; 17.02.2021
В 32-битных архитектурах: -134217729 < i < 134217728
(28 бит).
В 64-битных архитектурах: -576460752303423489 < i < 576460752303423488
(60 бит).
person
ghnome
schedule
08.09.2016
Это пределы для малых целых чисел. Я спрашивал о больших целых числах произвольного размера.
- person Filip Haglund; 09.09.2016