我perl新手,

我可以简单地使用的64位的算术在Perl?

例如

$operand1 = 0xFFFFFFFFFFFF;   # 48 bit value
$operand2 = 0xFFFFFFFFFFFF;   # 48 bit value

$Result = $operand1 * $operand2;
  • 我基本上在寻找一个 替代int64_t在perl。
  • 是否有任何方式提到,如果 变量签署或无符号?
有帮助吗?

解决方案

是的,但是你需要有Perl编制有64位的支持。

其他提示

看看 bigint:

透明BigInteger支持Perl...

所有经营者(包括基本数学运算)除外的范围内操作员 .. 超载。整常量创建适当的BigInts.

浮点常被截断为整数。所有零部件和结果的表情也是截断。

不像 整数, 这说明造成整数的常量仅限于它们的尺寸通过可用的存储器和CPU时间...

是的,Perl自动处理大整数的算术用于你。然而,Perl不提供之间的区别签署和未签署的类型(没有必要,因为没有固定的边界上大整数范围)。

perlnumber 手册有更多的信息有关的不同的数字格式的支持Perl。

要知道,64位的算术在Perl是其中之一,但它是什么,显示通过sprintf%d%u并%s,是第二次。目前perl版本支持64位没有问题,但sprintf%d格式不%b同样的行动。

use bigint 将使Perl处理任意的尺寸整数正确无整数溢出。

例如:

use bigint;
print 1 << 256;

将打印:

115792089237316195423570985008687907853269984665640564039457584007913129639936
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top