二进制,八进制,十进制,十六进制 之间的相互转换

在JAVA面试题中 有时会出现进制间的转换,

十进制转二进制

十进制转二进制,即十进制除二取余数

余数为权位上的数,得到商,继续除二,直到商为0

如:150/2=75  ----0

  75/2=37 -------1

  37/2=18--------1

  18/2=9---------0

  9/2=4---------1

  4/2=2-------0

  2/2=1--------0

  1/2=0---------1

从最后一个余数开始读到第一个 就是该十进制的二进制--10010110

如果是负数150 先取反 01101001  然后在加1                   01101010

二进制转为十进制数 以 10010110 为例子

1*2(7次方)+0*2(6次方)+0*2(5次方)+1*2(4次方)+0*2(3次方)+1*2(2次方)+1*2(1次方)+0*2(0次方)=150;

150二进制转换为八进制的数为226

10  010 110     1,从右到左,不足时补零。 2,取三合一  3,按权展开求和

         010                   010                         110

 0*2(2次方)+1*2(1次方)+0*2(0次方)       0*2(2次方)+1*2(1次方)+0*2(0次方)           1*2(2次方)+1*2(1次方)+0*2(0次方)

        2                                             2                         6

八进制转换二进制

        2                                                                             2                          6

      2/2=1;----0                  2/2=1;----0                  6/2=3 --- 0  3/2=1 --1

      1/2=0;-----1;                 1/2=0;-----1;                    1/2=0; --1

从下至上 取三位 不足时在最左边补0

    0-10                      0-10                                                                             110

二进制转换成16进制

          1                      0010                          1100

从右至左 取四合一,不足时补零 

        00001                                                                  0010                                                                                          1100

0*2(3次方)+0*2(2次方)+0*2(1次方)+1*2(0次方)=1;0*2(3次方)+0*2(2次方)+1*2(1次方)+1*2(0次方)=2;1 *2(3次方)+1*2(2次方)+0*2(1次方)+0*2(0次方)=12=c

12c

十六进制转二进制

         1                            2                    c

        1/2=0  ----1                      2/2=1 ----0                12/2=6   ---0

                                   1/2=0 -----1                6/2=3 ---0

                                                         3/2=1-1

                                                         1/2=0 1

不足在最左边补零   0001                                                              0010                                                                   1100          

从有效位开始看得到 100101100

    十进制,转八进制  。     和十进制转十六进制

    150/8=18 ---6        150/16=9---6

    18/8=2 ----2          9/16=0---9;

    2/8=0-- ---2  

    226             96

  八进制转十进制            十六进制转十进制

按照权展开

  2*8(2次方)+2*8(1次方)+2*8(0次方)=150;    9*16(1次方)+6*16(0次方)=150;

十六进制和八进制之间的转换

  第一种 先转成二进制 然后再进行相互转换

  第二种 先转换成十进制,然后再进行相互转换

总结:

  进制间的转换要注意两者之间权的对应关系

  不能直接转换的可通过间接转换的方法进行转换。

猜你喜欢

转载自www.cnblogs.com/gudeyeyu/p/9227562.html