基数変換
10進数と16進数と2進数の変換例
# perl -e '$n=12345; $s = unpack("H*", pack("N*", $n)); $s=~s/^0*//g; $n=$hex; print $s;' 3039 # perl -e '$n=12345; $s = unpack("N*", pack("N*", $n)); $s=~s/^0*//g; $n=$hex; print $s;' 12345 # perl -e '$n=12345; $s = unpack("B*", pack("N*", $n)); $s=~s/^0*//g; $n=$hex; print $s;' 11000000111001 # perl -e '$n=0x3039; $s = unpack("N*", pack("N*", $n)); $s=~s/^0*//g; $n=$hex; print $s;' 12345 # perl -e '$n=0b11000000111001; $s = unpack("N*", pack("N*", $n)); $s=~s/^0*//g; $n=$hex; print $s;' 12345
と思ったら、以下のほうがずっと簡単だった。
# perl -e '$n=12345; print sprintf("%x",$n);' 3039 # perl -e '$n=12345; print sprintf("%b",$n);' 11000000111001 # perl -e '$n=12345; print sprintf("%o",$n);' 30071