Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
$d = 1024Perlで10進数の数値を16進数の0xFFに変換するにはどうすればよいですか?
$d = 1024
変数は別のd変数に割り当てて出力する必要があるため、読みやすくするために 16 進形式にする必要がありました。
d
102410 進数は 16 進数ではありません0xFF。代わりに、です0x400。
1024
0xFF
0x400
sprintfは次のように使用できます。
my $hex = sprintf("0x%X", $d);
警告: 2 64 ≅ 10 19でsprintf オーバーフローしますが、32 ビットでは既に 2 32 ≅ 4×10 9しかない場合でもオーバーフローします。
sprintf
大きな数の場合は、レキシカル プラグマを有効にしbigintます。as_hexに記載されていMath::BigIntます。
bigint
as_hex
Math::BigInt
use bigint; my $n = 2**65; print $n->as_hex; # '0x20000000000000000'
古典的なprintf()を使用できます。
printf("%x",$d);