进制之间的转换及方法:

295 阅读2分钟

进制转换

  • 对于整数,有四种表示方式:
      1. 二进制:0,1,满2进1,以0b或0B开头;
      2. 十进制:0-9,满10进1;
      3. 八进制:0-7,满8进1,以数字0开头表示;
      4. 十六进制:0-9及A(10)-F(15),满16进1,以0x或0X开头,此处的A-F不区分大小写。
    
  • 二进制转十进制:
      规则:从低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和;
      例: 0b1011 => 1*2^(1-1) + 1*2^(2-1) + 0*2^(3-1) + 1*2^(4-1) = 1+2+0+8=11;
    
  • 八进制转十进制:
      规则:从低位(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和;
      例:0234 => 4*8^(1-1) + 3*8^(2-1) + 2*8^(3-1) + 0*8^(4-1) = 4+24+128+0=156;
    
  • 十六进制转十进制:
      规则:从低位(右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和;
      例子:0x023A => 10*16^(1-1) + 3*16^(2-1) + 2*16^(3-1) + 0*16^(4-1) = 10+48+512+0 = 570;
    
  • 十进制转二进制:
      规则:将该数不断除以2,知道商为0位置,然后将每步得到的余数倒过来,就是对应的二进制。
      案例:34 =  0b0010010
    
  • 十进制转八进制:
      规则:将该数不断除以8,知道商为0位置,然后将每步得到的余数倒过来,就是对应的二进制。
          案例:131 => 0203
    
  • 十进制转十六进制:
      规则:将该数不断除以16,知道商为0位置,然后将每步得到的余数倒过来,就是对应的二进制。
      案例:237 => 0xED
    
  • 二进制转八进制:
      规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可。
      例:0b11 010 101 =>  0 3 2 5
    
  • 二进制转十六进制:
      规则:从低位开始,将二进制数每四位一组,转成对应的十六进制数即可。
      例:0b 1101 0101 =>  0x D 5
    
  • 八进制转二进制:
      规则:将八进制数每1位,转成对应的一个3位的二进制数即可
      例:0237 => (010) (011) (111) => 0b10011111
    
  • 十六进制转二进制:
      规则:将十六进制数每1位,转成对应的一个4位的二进制数即可
      例:0x23B => (0010) (0011) (1011) => 0b001000111011