33

$d = 1024Perlで10進数の数値を16進数の0xFFに変換するにはどうすればよいですか?

変数は別のd変数に割り当てて出力する必要があるため、読みやすくするために 16 進形式にする必要がありました。

4

4 に答える 4

51

102410 進数は 16 進数ではありません0xFF。代わりに、です0x400

sprintfは次のように使用できます。

my $hex = sprintf("0x%X", $d);
于 2012-05-07T11:12:44.690 に答える
29

警告: 2 64 ≅ 10 19でsprintf オーバーフローしますが、32 ビットでは既に 2 32 ≅ 4×10 9しかない場合でもオーバーフローします。

大きな数の場合は、レキシカル プラグマを有効にしbigintます。as_hexに記載されていMath::BigIntます。

use bigint;
my $n = 2**65;
print $n->as_hex;   # '0x20000000000000000'
于 2012-05-07T11:54:43.277 に答える
0

古典的なprintf()を使用できます。

printf("%x",$d);
于 2012-05-07T11:13:32.323 に答える