如何$d = 1024在Perl中以十六进制的形式将十进制数转换为0xFF?
d需要将变量分配给不同的变量并进行打印,因此为了便于阅读,我要求它采用十六进制格式.
cod*_*ict 43
1024十进制不是0xFF十六进制.相反,它是0x400.
你可以使用sprintf:
my $hex = sprintf("0x%X", $d);
Run Code Online (Sandbox Code Playgroud)
dax*_*xim 25
警告:sprintf 溢出在2 64 ≅10 19,在32位甚至已经在仅2 32 ≅4×10 9.
对于大数字,启用词法编译指示bigint.as_hex记录在案Math::BigInt.
use bigint;
my $n = 2**65;
print $n->as_hex; # '0x20000000000000000'
Run Code Online (Sandbox Code Playgroud)