虚拟机:linux的shell数制转换

电子说

1.3w人已加入

描述

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分