Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

bash内の算術置換で16進数の数値をつかう

bashの組み込み変数をつかうと、算術置換の際に16進数を展開して使うことができます。
シリアル経由でHEX値がきて、それを受信して使いたい時なんかは有効ですね。

実際のところ

$ echo $((16#BC + 1))
189

HEX値を渡すことも可能。

$ echo $((0xA + 1))
11

どちらの場合も変数を先に展開できる……

"基数#"の記法でも"0x"の記法でも同様に四則演算が可能

$ value=CC

$ echo $((16#$value + 2))
206

$ echo $((0x$value + 2))
206

発展的話題:ヒアドキュメントの中で16進数を10進数にパースする

shuzo-kino.hateblo.jp