进制表示法

进制 下标表示法 前缀表示法 后缀表示法
二进制 (binary) (1001)2 0b10010B1001 1001b1001B
八进制 (octal) (17)8 017 17o17O
十进制 (decimal) (10)10 无前缀 10d10D
十六进制 (hexadecimal) (1F)16 0x1F0X1F 1fh1FH

八进制的前缀法跟数字 0 过于相似,因此比较少使用。 八进制的后缀法跟十进制的过于相似,因此比较少使用。

进制转换

printf 命令转进制。

  • %d%i 转换成有符号的十进制
  • %u 转换成无符号的十进制
  • %o 转换成无符号的八进制
  • %x 转换成无符号的十六进制(小写字母)
  • %X 转换成无符号的十六进制(大写字母)

bc 命令转换任意进制。

  • 转成四进制 echo "obase=4; 100" | bc
  • 转成八进制 echo "obase=8; 100" | bc
  • 转成十二进制 echo "obase=12; 100" | bc
  • 转成十六进制 echo "obase=16; 100" | bc
  • 八进制转十进制 echo "ibase=8; 100" | bc
  • 二进制转十六进制 echo "ibase=2; obase=16; 11000000" | bc