二进制、十进制、八进制、十六进制的互相转换

    突然发现关于一些转换关系有些模糊,又重新复习一遍,现在记录下来加深下记录也和大家共享下。

一、十进制转换二进制的方法

整数部分除以二取余数,小数部分乘以二取整数。

eg1:整数 17 的二进制转换过程:

      17 / 2 = 8 --------- 余数1

       8 / 2  = 4 --------- 余数0

       4 / 2  = 2 --------- 余数0

       2 / 2  = 1 --------- 余数0 , 最后值为1

       二进制从最后商值再到余数从下到上写出:10001

eg2:小数0.4 的二进制转换过程(保留4位):

       0.4 * 2 =0.8 ------- 整数0

       0.8 *2 = 1.6 ------- 整数1

       0.6 * 2 = 1.2 ------- 整数1

       0.2 * 2 = 0.4 ------- 整数0

      0.4 * 2 = 0.8 -------- 整数0

      二进制小数转换保留小数位数0舍1入(从上向下),即:0.0110

二、二进制转换十进制的过程:

      1100.011 = 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0 + 0*2^(-1) + 1*2^(-2) + 1*2^(-3) = 12.375

三、二进制与八进制的转换过程:

     2^3 = 8 ,八进制就是用这种关系衍生而来,即三位二进制表示一位八进制。

(1)二进制转换为八进制:

     3位二进制数按权展开相加得到一位八进制数(从右向左三位一体,不足再补0)。

   eg1:   11001001 = 011  001  001  =  0*2^2+1*2^1+1*2^0    0*2^2+0*2^1+1*2^0    0*2^2+0*2^1+1*2^0  = 311

             转换的八进制为:311   

  eg2:    1011011001.0111 = 001  011  011  001  .  011  100  =    0*2^2+0*2^1+1*2^0     0*2^2+1*2^1+1*2^0 

              0*2^2+1*2^1+1*2^0      0*2^2+0*2^1+1*2^0    .    0*2^2+1*2^1+1*2^0     1*2^2+0*2^1+0*2^0    

              = 1331.34

  (2) 八进制转换为二进制:

        把八进制从左到右每一位拆成3位二进制 

   eg: 67.5  =   6  7   .   5  =   110   111   .  101  =   110111.101

四、二进制与十六进制的转换过程:

      2^4 = 16 ,十六进制就是用这种关系衍生而来,即四位二进制表示一位八进制。

(1)二进制转换为十六进制:

     4位二进制数按权展开相加得到一位十六进制数(从右向左四位一体,不足再补0)。

    eg: 11101001.1011  =  1110   1001  .  1011  =   1*2^3+1*2^2+1*2^1+0*2^0    1*2^3+0*2^2+0*2^1+1*2^0  

           .   1*2^3+0*2^2+1*2^1+1*2^0   = e9.b

  

 (2) 十六进制转换为二进制:

        把十六进制从左到右每一位拆成4位二进制 

    eg:  a8.16 =   a   8  .   1   6  =   1010   1000   .   0001   0110    =  10101000.0001011

五、八进制和十六进制的相互转换:

      不能直接转换,需要通过二进制这个桥梁进行转换,逻辑和上面是相通的,就不再举例说明了。

六、八进制或十六进制与十进制的相互转换:

(1)八进制或十六进制转换为十进制:

         把八进制或十六进制数按权展开相加即可得到十进制数。

    eg1:  八进制数 552.3

            552.3  =  5*8^2 + 5*8^1 + 2*8^0  + 3*8^(-1) = 362.375

    eg2:  十六进制 e1f

            e1f  = 14*16^2 + 1*16^1 + 15*16^0  = 3615

(2) 十进制转换八进制或十六进制:

     a. 间接法: 不直接转换,通过二进制这个中介进行转换,转换逻辑参考上面方法。

     b.直接法: 八进制或十六进制转换为十进制的方法类似于二进制转化为十进制的方法,不过二进制的参考书是2,

        八进制的参考数是8,十六进制的参考书是16。

   eg1: 18 (十进制)

         转换为二进制:除于2取余数      10010

         转换为八进制:除于8取余数      22

         转换为十六进制:除于16取余数  12

  eg2: 29.12(十进制) ,保留3位小数

         转换为二进制:11101.001

         转换为八进制(3舍4入 , 小数部分*8取整数):35.075  

        转换为十六进制(7舍8入,小数部分*16取整数):1d.1ec

        0.12 * 8 =  0.96   取整数0

        0.96 * 8 =  7.68   取整数7

        0.68 * 8 =  5.44   取整数5

七、在线任意进制转换工具 - aTool在线工具

      aTool在线转换工具

       到这关于进制间的转换就总结到这里了,希望对大家有用,也希望可以提出我的问题大家相互指正。。。

猜你喜欢

转载自blog.csdn.net/cherry459/article/details/79411420