我是perl新手,
我可以在 Perl 中简单地使用 64 位算术吗?
例如
$operand1 = 0xFFFFFFFFFFFF; # 48 bit value
$operand2 = 0xFFFFFFFFFFFF; # 48 bit value
$Result = $operand1 * $operand2;
- 我基本上是在寻找 perl 中 int64_t 的替代品。
- 有什么办法可以提及,如果变量是有符号的还是无符号的?
是的,但是您需要使用 64 位支持编译 Perl。
是的,Perl 会自动为您处理大整数运算。然而,Perl 没有区分有符号和无符号类型(没有必要,因为大整数范围没有固定界限)。
perlnumber手册页包含有关 Perl 支持的不同数字格式的更多信息。
请注意,Perl 中的 64 位算术是一个,但 sprintf %d %u 和 %s 显示的是第二个。当前的 perl 版本支持 64 位没有问题,但 sprintf %d 格式不支持, %b 同样。
use bigint
将使 Perl 正确处理任意大小的整数而不会出现整数溢出。
例如。:
use bigint;
print 1 << 256;
将打印:
115792089237316195423570985008687907853269984665640564039457584007913129639936