当前位置 > 主页 > 万和大讲堂 >


简单学习Linux shell 进制数据的转换

2015-07-03 14:19

  shell可以在不调用第3方命令,表示不同进制数据。这里总结以下表示方法。shell脚本默认数值是由10进制数处理,除非这个数字某种特殊的标记法或前缀开头。才可以表示其它进制类型数值。如:以0开头就是8进制。以0x开头就是16进制数。使用BASE#NUMBER这种形式可以表示其它进制。BASE值:2-64.南京RHCE认证培训


  使用方法:


  其它进制转为10进制


  八进制转十进制:


  [chengmo@centos5~]$((num=0123));


  [chengmo@centos5~]$echo$num;


  83


  [chengmo@centos5~]$((num=8#123));


  [chengmo@centos5~]$echo$num;


  83


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


  十六进制转十进制:


  [chengmo@centos5~]$((num=0xff));


  [chengmo@centos5~]$echo$num;


  255


  [chengmo@centos5~]$((num=16#ff));


  [chengmo@centos5~]$echo$num;


  255


  base-32转十进制:


  [chengmo@centos5~]$((num=32#ffff));


  [chengmo@centos5~]$echo$num;


  507375


  base64转十进制:


  [chengmo@centos5~]$((num=64#abc_));


  [chengmo@centos5~]$echo$num;


  2667327


  二进制转十进制


  [chengmo@centos5~]$((num=2#11111111));


  [chengmo@centos5~]$echo$num;


  255


  十进制转为其它进制


  十进制转八进制


  这里使用到:bc外部命令完成。bc命令格式转换为:echo"obase=进制;值"|bc 南京RHCE认证培训


  [chengmo@centos5~]$echo"obase=8;01234567"|bc


  4553207


  二进制,十六进制,base64转换为十进制也相同方法。


  [chengmo@centos5~]$echo"obase=64;123456"|bc


  300900


  shell,内置各种进制表示方法非常简单。记得base#number即可。这里记得赋值时候用(())符号。不能直接用=号了。=号没有值类型。默认将后面变成字符串了。如:


  [chengmo@centos5~]$num=0123;


  [chengmo@centos5~]$echo$num;


  0123


  0开头已经失去了意义了。


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


  [chengmo@centos5~]$letnum=0123;


  [chengmo@centos5~]$echo$num;


  83


  学Linux培训,就来江苏万和计算机培训中心


最近开班 more>
  • Python基础班
  • Java全栈开发
  • 前端基础班
  • 软件测试
  • 云原生精英班
  • 云网预科班
  • CISP
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCM 12C
  • OCP 19C
  • RHCE 9.0
  • 随时开课
  • 12月26日
  • 随时开课
  • 12月4日
  • 12月16日
  • 12月9日
  • 12月21日
  • 1月6日
  • 12月30日
  • 12月16日
  • 12月21日
  • 12月7日
  • 12月7日
  • ——
  • 随时开课
  • 12月16日
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入