bashの内蔵計算機能を使う
- 10進数と16進数で混合計算ができる
- 普通に()を使って数式がかける
- 16進数への変換がすぐにできる
が必要で普段はポケコンを使っているのだがコマンドラインでやりたい。bc はいつも使い方を忘れてしまっていたが、bash の内蔵計算機能があるというので工夫してみた。
function cal { ans=$(($*)) echo $ans } function hex { read stdin printf '%#x\n' $stdin }
$ cal "128+(0x10*8)" | hex 0x100
最後の答えは $ans で参照できる。もし 16 進数を 0xFF のように書かないとエラーになる場合は以下にすれば 0xff でもよくなるはず。
function cal { exp=`echo $* | tr '[abcdef]' '[ABCDEF]'` ans=$(($exp)) echo $ans }
問題点
しばらく使ってみたが、小数点演算ができないという電卓としては致命的な問題が・・・。