2021/12/11

bashでN進数表記

整数計算に限りますが、bashで$(( ))による計算をするときに# (ASCIIコードで0x23、シャープ、井桁、番号記号、ナンバーサイン、ハッシュ、どう呼べばよいのか?)を使うとN進数で記載できます。計算結果の表示は10進数になります。

2進数

$ echo $((2#1110))
14

3進数

$ echo $((3#201))
19

4進数

$ echo $((4#123))
27

5進数

$ echo $((5#234))
69

8進数

$ echo $((8#17))
15

10進数

$ echo $((10#17))
17

16進数

$ echo $((16#fe))
254

20進数

$ echo $((20#ji))
398

40進数

$ echo $((40#D))
39

50進数

$ echo $((50#N))
49

60進数

$ echo $((60#X))
59

64進数

$ echo $((64#Z))
61
$ echo $((64#@))
62
$ echo $((64#_))
63

基底の最大値は64で、それより値が大きいと

$ echo $((65#1))
bash: 65#1: 無効な基底の数値です (エラーのあるトークンは "65#1")
とエラーになります。

0 件のコメント :