Linux/UNIXのコンソール上で10進数⇔16進数変換を行う

ふと、コンソール上で10進数⇔16進数の変換を行う方法ってどんなものがあるのか、と思ったので、少し調べてみることにした。
とりあえず、以下の2つの手法が簡単に変換でき、おすすめだ。

1.echo+bcで対応する

echo+bcの組み合わせで、うまいこと変換させることが出来る。

10進数→16進数

echo "obase=16; 10進数"|bc

16進数→10進数

echo "ibase=16; 16進数"|bc

[root@localhost ~]# echo "obase=16; 162"|bc
A2
[root@localhost ~]#
[root@localhost ~]# echo "ibase=16; FF"|bc
255

2.bashのprintfを使う

もしbashを使っているならば、組み込みコマンドであるprintfを使うことで簡単に変換することが出来る。

10進数→16進数

printf %x 10進数

16進数→10進数

printf %d 16進数

[root@localhost ~]# printf %x\\n 22
16
[root@localhost ~]# printf %d\\n 0xfc
252

※上記例では、改行のため出力時に「\n」をつけている

その他、wcalcコマンドという計算用のコマンドを使う方法もあるようだが、まぁ、インストールに面倒があるし、ただ変換するだけなら上記手法で問題無いだろう。