shell 腳本默認數值是由10 進制數處理,除非這個數字某種特殊的標記法或前綴開頭。 才可以表示其它進制類型數值。如:以 0 開頭就是 8 進制。以0x 開頭就是16 進制數。使用 BASE#NUMBER 這種形式可以表示其它進制.BASE值:2-64.
使用方法:
八進制轉十進制:
charles@taotao:~$ ((num=0123))
charles@taotao:~$ echo $num
83
charles@taotao:~$ ((8#123))
charles@taotao:~$ echo $((8#123))
83
(( )) 也可以用 [ ]替代:
charles@taotao:~$ echo $[8#123]
83
charles@taotao:~$ echo $[0123]
83
charles@taotao:~$ echo $[num=0123]
83
charles@taotao:~$ echo $num
83
也可以用 let.
charles@taotao:~$ let num=0x80
charles@taotao:~$ echo $num
128
十六進制轉十進制:
charles@taotao:~$ ((num=0xff))
charles@taotao:~$ echo $num
255
charles@taotao:~$ ((num=16#ff))
charles@taotao:~$ echo $num
255
十進制轉八進制
charles@taotao:~$ echo “obase=16;255” | bc
FF
charles@taotao:~$ echo “obase=8;255” | bc
377
-
Linux
+關注
關注
87文章
11296瀏覽量
209353 -
虛擬機
+關注
關注
1文章
914瀏覽量
28161 -
Shell
+關注
關注
1文章
365瀏覽量
23358
發布評論請先 登錄
相關推薦
評論