C——进制转化

八进制与十六进制

  • 0 开头代表八进制,0666

  • 0x 开头代表十六进制,0x19

二进制转化过程

  • 二进制与八进制对应关系

    • 每三个数字隔开,三个数字对应一个八进制的数,不足三个数字用0补

      001 101 111 011 111 010 101 111 101 010 111
      1    5   7   3   7   2   5   7   5   2   7
      
  • 二进制与十六进制对应关系

    • 每四个数字隔开,四个数字对应一个十六进制的数,不足四个数字用0补

      0000 0110 1111 0111 1101 0101 1111 0101 0111
      0 	  6    f    7    d    5    f    5    7
      
  • 二进制与十进制对应关系

    • 例如,1010

    [0*2^0+1*2^1+0*2^2+1*2^3=10 ]

    • 从个位数开始依次乘以 2 的 n 次幂,n 从 0 开始

十进制转化过程

  • 转二进制,例如50转二进制

    • 将2作为除数,取商数和余数,直到商数为0,将余数倒过来就是转化结果

    • 最后结果:110010

          - 2    25   0
          - 2    12   1
          - 2    6    0
          - 2    3    0
          - 2    1    1
          - 2    0    1
      
  • 转八进制,例如35转八进制

    • 方法如上,除数变成了8

    • 最后结果:43

          - 8      4      3
          - 8      0      4
      
  • 转十六进制,例如50转十六进制

    • 最后结果:32

          - 16     3       2
          - 16     0       3
      

结论

  • 二进制用八进制和十六进制表现更为方便,这才是计算机不使用十进制的原因
原文地址:https://www.cnblogs.com/cnloop/p/9352413.html