速学进制之间的转换

进制

所谓进制就是进位制,是人们规定的一种进位方法。对于任意一种进制--X进制,就是当某一位置上的数运算逢X进一位。十进制是逢十进一,二进制是逢二进一,八进制是逢八进一,一次类推,X进制就是逢X进一。

各种常见进制

二进制

0 1 10 11 100 101 110 111...

八进制

0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20...

十进制

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

十六进制

0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 ...19 1A 1B 1C...

进制之间的转换(正整数)

其他进制转换为十进制

  • 二进制转换为十进制

      1010=1*2^3+0*2^2+1*2^1+0*2^0=10
    
  • 八进制136转换为十进制

      136=1*8^2+3*8^1+6*8^0=94
    
  • 十六进制127转换为十进制

      127=1*16^2+2*16^1+7*16^0=295
    

十进制转换为其他进制

  • 十进制30转换为二进制

      30/2=15  余 0
      15/2=7   余 1
      7/2=3    余 1
      3/2=1    余 1
      结果是:11110(最后一步的商+倒序余数)
    
  • 十进制149转换为八进制

      149/8=18   余 5
      18/8=2     余 2
      结果是:225
    
  • 总结:十进制转换为N进制方法是将十进制数除以N,得到的商在除以N,直到得到的商小于N,然后在旁边标出各步的余数,最后从最后一次商开始倒序拼上余数写出,高位补零。

八四二一快速转换法

  • 二进制10010转换为十进制

      10010=2^1 + 2^4 =18
    

技巧:挑出里面所有的1,熟记2的各个次方的值

  • 十进制69转换为二进制

      69=64 + 4 + 1 =1000101
    

技巧:把数拆分成几个2的次方数的和

  • 二进制111010101转换为十六进制

      1 1101 0101	对应 1 D 5
      结果为:1D5
    

技巧:按照"四位一组"来算,不够高位补0(八进制余十六进制运算方法同,只不过是按“三位一组”计算。)

  • 十六进制3B转换为二进制

      3 B 对应 0011 1011 
      结果为:111011
    

提示:不论是十进制与八进制、十六进制之间的转换,还是八进制与十六进制之间的转换都可以先将其转换为二进制再进行目标进制转换。

  • 2的各个次方数

      2^0=1
      2^1=2
      2^3=8
      2^4=16
      2^5=32
      2^6=64
      2^7=128
      2^8=256
      2^9=512
      2^10=1024
    

进制转换(小数)

十进制转为二进制

  • 十进制数10.35转换为二进制

      整数部分 10 转换为二进制为 1010
      小数部分 0.35
      0.35 * 2 = 0.7 取 0 小数部分 0.7
      0.7 * 2 = 1.4  取 1 小数部分 0.4
      0.4 * 2 = 0.8  取 0 小数部分 0.8
      0.8 * 2 = 1.6  取 1 小数部分 0.6
      0.6 * 2 = 1.2  取 1 小数部分 0.2
      0.2 * 2 = 0.4  取 0 小数部分 0.4
      无限循环...
      结果:1010.010110...
    
  • 总结

    小数部分只有是0.5 0.25 0.75 0.125 0.0625等可以是有限小数,小数转换为分数后,分母是2的次方数才可以转为有限小数。

  • 同样适用十进制转其他进制

二进制转为十进制

  • 二进制1001.1011转为十进制

      整数部分 1001 转为十进制为 9
      小数部分:
      0.1011 = 1*2^-1 + 0*2^-2 + 1*2^-3 + 1*2^-4=0.5 + 0 + 0.125 + 0.0625=0.6875
      结果:9.6875
    
  • 同样适用其他进制转换为十进制

  • 熟记2的负次方数

      2^-1 = 0.5
      2^-2 = 0.25
      2^-3 = 0.125
      2^-4 = 0.0625
      2^-5 = 0.03125
      2^-6 = 0.015625
      2^-7 = 0.0078125
      2^-8 = 0.00390625
      2^-9 = 0.00195312
      2^-10 = 0.00097656
    

二进制和八进制和十六进制的小数转换

  • 二进制11.10111001转换为八进制

      整数部分 11 转为八进制为 2
      小数部分 进行拆分 三个一组,不足右补零
      101 -> 5
      110 -> 6
      010 -> 2
      结果为:2.562
    
  • 同样适用二进制转为十六进制

  • 十六进制a.2bfd转为二进制

      整数部分 a -> 1010
      小数部分 :
      2 -> 0010
      b -> 1011
      f -> 1111
      d -> 1101
      结果:1010.0010101111111101
    
  • 同样适用八进制转为二进制

原文地址:https://www.cnblogs.com/pangwl/p/7196129.html