如何在Perl中将十进制转换为十六进制?

Ali*_*sha 26 perl

如何$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)