Как я могу использовать целые числа произвольной длины в Perl? - PullRequest
7 голосов
/ 24 января 2010

Есть ли какой-нибудь стандартный способ использовать целые числа произвольной длины в Perl? Я работаю над кодом, который генерирует сборку x64 для тестов, и мне надоело манипулировать 32 битами одновременно.

Я использую Perl 5.10.0, для чего он стоит.

Ответы [ 2 ]

15 голосов
/ 24 января 2010
10 голосов
/ 24 января 2010

Если вы хотите использовать только большие целые числа, вы можете использовать bigint, который можно включить в файл:

 use bigint;

или просто ограниченный объем:

 {
 use bigint;
 ...;
 }

Если вам нужны большие числа с плавающей точкой, а также большие целые числа, вы можете использовать прагму bignum таким же образом. В любом случае, они немного замедлят вашу программу (или значительно, если вы много занимаетесь математикой), поэтому вы должны использовать их только в тех частях, где они вам действительно нужны. Тем не менее, быстрее не лучше, чем правильно. :)

Если вы хотите очень точно контролировать, какие числа используют математику big*, вы можете использовать базовые классы, которые их реализуют, и создавать объекты самостоятельно, а не применять семантику big* ко всему. Посмотрите, что Math::Big* модулей.

Я говорю об этом подробнее в главе «Бенчмаркинг» Освоение Perl , поскольку в наше время компьютеры слишком быстры, чтобы использовать факториал в качестве медленной функции, и мы также добавили раздел о больших числах в следующую Эффективное программирование на Perl, 2-е издание .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...