shell中的进制转换

其他进制转10进制

在bash下,各种进制转换为10进制的表达方式是:$((base#num)) 井号前边表示进制,后边是数字。

  • 2进制转10进制:

      echo $((2#1111))  
    
  • 8进制转10进制:

      echo $((8#42))
      echo $((013))  这样也可以,0开头表示8进制
      不过这个在zsh下不行,013识别成了十进制的13,而不是8进制的11.
    
  • 16进制转10进制:

      echo $((16#AE))
      echo $((0xA4)) 直接这样也可以  0x表示16进制
    

10进制转其他进制

  • 10进制转16进制:

      printf "%x" 12
    
  • 10进制转8进制:

      printf "%o" 42
    
  • 10进制转2进制:

      echo "obase=2;10" | bc
    

发表评论

电子邮件地址不会被公开。 必填项已用*标注