码迷,mamicode.com
首页 > 系统相关 > 详细

shell 编程进制转换

时间:2019-11-18 11:18:27      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:span   没有   取值   strong   不能   开头   赋值   格式   标记   

shell脚本在处理数据的时候,默认是10进制,通过特殊的标记或者前缀可以转换为其他的进制。

以 0 开头就是 8 进制.以0x 开头就是16 进制数.

1. 使用 BASE#NUMBER 这种形式可以表示其它进制.BASE值的取值范围:2-64.

2. 赋值时候用(())符号。不能直接用=号了。=号没有值类型。默认将后面变成字符串了.

3. 可以通过定义符:let达到(()) 运算效果.

 

  • 十进制转换为其他进制

((表达式)),(())里面可以是任意数据表达式。如果前面加入:”$”可以读取计算结果。

八进制转十进制:

root@baohua-VirtualBox:/home/baohua# echo $((num = 0123))
83


root@baohua-VirtualBox:/home/baohua# echo $((num = 8#123))
83

 

十六进制转十进制: 

root@baohua-VirtualBox:/home/baohua# echo $((num=0xff))
255

root@baohua-VirtualBox:/home/baohua# echo $((num=16#ff))
255

 

二进制转十进制

root@baohua-VirtualBox:/home/baohua# echo $((num=2#11111111))
255

 

base-32转十进制:

root@baohua-VirtualBox:/home/baohua# echo $((num=32#ffff))
507375

 

base64转十进制:

root@baohua-VirtualBox:/home/baohua# echo $((num=64#ffff))
3994575


 

 

  • 其他进制转换为十进制
十进制转八进制

bc外部命令完成。bc命令格式转换为:echo "obase=进制;值"|bc. 二进制,十六进制,base64转换为 十进制也相同方法.

root@baohua-VirtualBox:/home/baohua# echo "obase=8;0123"|bc
173

root@baohua-VirtualBox:/home/baohua# echo "obase=2;0123"|bc
1111011

 

 

在赋值运算中,不能再用=号,需要(())来进行赋值才可以达到进制转换,另外也可以通过定义符:let达到(()) 运算效果.

root@baohua-VirtualBox:/home/baohua# let num=0123;
root@baohua-VirtualBox:/home/baohua# echo $num
83

 

 

 

 

shell 编程进制转换

标签:span   没有   取值   strong   不能   开头   赋值   格式   标记   

原文地址:https://www.cnblogs.com/rykang/p/11880609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!