7

是否有任何标准方法可以在 Perl 中使用任意长度的整数?我正在编写为测试生成 x64 程序集的代码,我厌倦了一次操作 32 位。

我正在使用 Perl 5.10.0,因为它的价值。

4

2 回答 2

15

use Math::BigInt

于 2010-01-24T08:31:00.853 回答
10

如果您只想使用大整数,您可以使用 ,您可以将bigint其范围限定为文件:

 use bigint;

或者只是一个有限的范围:

 {
 use bigint;
 ...;
 }

如果您需要大浮点数和大整数,则可以bignum以相同的方式使用 pragma。无论哪种方式,这些都会稍微减慢您的程序(或者如果您进行大量数学运算则显着减慢),因此您应该只将它们用于您真正需要它们的部分。但是,更快并不比正确更好。:)

如果您想非常精确地控制哪些数字使用big*数学,您可以使用实现它们的底层类并自己创建对象,而不是将big*语义应用于所有内容。看那个Math::Big*模块。

我在Mastering Perl的 Benchmarking 章节中更多地讨论了这一点,因为现在计算机速度太快,无法使用阶乘作为慢速函数,我们还在即将发布的Effective Perl Programming, 2nd Edition中添加了一个关于大数字的部分。

于 2010-01-24T17:33:52.960 回答