シェルである bash を使って、16進数(HEX),10進数,8進数(OCT),2進数(BIN)の四則演算をする方法を紹介します。
また printf コマンドを利用して 16進数(HEX)などに変換し出力する実行例も紹介します。
Bashで足し算・引き算・割り算・掛け算をしたい場合は、以下の構文になります。
echo $((値+値)
echo $((値-値)
echo $((値*値)
echo $((値/値)
四則演算の実行例です。
$ echo $((20+10)) 30
$ echo $((20-10)) 10
$ echo $((20*10)) 200
$ echo $((20/10)) 2
16進数(HEX),8進数(OCT),2進数(BIN)を指定する場合、以下のように値を記述します。
16進数 | 0x値 or 0X値 16#値 |
8進数 | 8#値 |
2進数 | 2#値 |
実際に16進数で計算してみます。
$ echo $((0x10+0x20)) 48
echo $((16#10+16#20)) 48
計算結果が10進数で表示されてしまいます。
この出力を16進数に変換するため、printfを使うと便利です。
実際の実行例は以下のようになります。
echo $((16#10+16#20)) | xargs printf '%x\n' 30
$ echo $((16#10+16#20)) | xargs printf '%o\n' 60
xargsで計算結果をprintfに渡しています。
'%x'で16進数、'%o'で8進数に変換します。
¥nは改行となっています。
以下は、2進数と8進数の計算を実際に実行した時の出力になります。
$ echo $((2#1+2#10)) 3 $ echo $((8#1+8#7)) | xargs printf '%o\n'
進数変換は、上記で使った printf を使えば簡単にできるでしょう。
printf '%x\n' 255 ff
$ printf '%o\n' 511 777
以上、bashで簡単に四則演算をする方法でした。