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

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

Я использую Perl 5.10.0, если это имеет значение.

7
задан Nathan Fellman 24 January 2010 в 08:22
поделиться

2 ответа

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

 use bigint;

или просто ограниченную область видимости:

 {
 use bigint;
 ...;
 }

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

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

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

10
ответ дан 6 December 2019 в 07:06
поделиться
15
ответ дан 6 December 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: