Perl 64位十六进制函数

时间:2011-07-08 00:21:32

标签: perl

我想读取64位十六进制数字,并使用Perl进行数学运算。

我尝试了以下内容,但似乎无效。

> perl -e 'use integer; printf("%x\n", hex("0xffffffffffff")<<2)'
Integer overflow in hexadecimal number at -e line 1.
fffffffc

3 个答案:

答案 0 :(得分:3)

在我的64位系统上正常工作。

尝试使用use bignum代替use integer

答案 1 :(得分:1)

也许您的平台/操作系统的某些内容并非完全是64位的。尝试使用Math :: BigInt来避免任何麻烦。

答案 2 :(得分:1)

我宁愿选择性地使用Math :: BigInt:

,而不是使用bignum
perl -wle'use Math::BigInt;  $number = Math::BigInt->new("0xffffffffffff"); $number += 67; print $number->as_hex()'