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

 

20160122_000002

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

2.bashのprintfを使う

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

●10進数→16進数

printf %x 10進数

●16進数→10進数

printf %d 16進数

20160122_000003

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

 

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

 

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


Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*