我想读取64位十六进制数字,并使用Perl与他们进行数学运算。Perl 64位十六进制函数
我试过以下,但它似乎并没有工作。
> perl -e 'use integer; printf("%x\n", hex("0xffffffffffff")<<2)'
Integer overflow in hexadecimal number at -e line 1.
fffffffc
我想读取64位十六进制数字,并使用Perl与他们进行数学运算。Perl 64位十六进制函数
我试过以下,但它似乎并没有工作。
> perl -e 'use integer; printf("%x\n", hex("0xffffffffffff")<<2)'
Integer overflow in hexadecimal number at -e line 1.
fffffffc
也许你的平台/操作系统不完全是64位的。尝试Math :: BigInt以避免任何问题。
而不是使用BIGNUM,我宁愿有选择地使用数学:: BigInt有:
perl -wle'use Math::BigInt; $number = Math::BigInt->new("0xffffffffffff"); $number += 67; print $number->as_hex()'
它为我在64位CPU上,而不是32位CPU上。 – Flimzy
始终启用警告,即使在oneliners – ysth