数制系统之间的转换总结(各进制的转换)

来源:互联网 发布:linux deploy kali 编辑:程序博客网 时间:2024/04/29 06:31

1、   二进制转换为八进制

方法:我们通常使用 421 的方法来标记,从二进制转换为八进制;

       首先我们先将二进制数值分成三位字段,从右往左,若左边不够三位可用零来填充;

       然后在每一段上面从左往右分别标记421 ,将是1的对应的421 的值相加,再将每段得到的相加的结果相接,即可获得 八进制数值。

如:(110 101 110 010)2  =(6562)8

即:(4+2)+(4+1)+(4+2)+(2)=(6 + 5 + 6 + 2) 即为:6562

 

2、二进制转换为十进制

1)方法:在二进制数字上,从右往左依次记为2的次方,次方是从0开始,直到最左数字;

将二进制数字中的标为1 的上面的2的次方相加,获得的结果则为十进制结果。

      如:(111010)2 = (58)10   即:2 +(2*2*2) + (2*2*2*2) +(2*2*2*2*2)=58

2)小数:(11001.101)

  整数部分: 下面的出现的2(x)表示的是2的x次方的意思

  1*2(4)+1*2(3)+0*2(2)+0*2(1)+1*2(0)=25

  小数部分:

  1*2(-1)+0*2(-2)+1*2(-3)=0.625

  所以:(11001.101)(二)=(25.625)(

 

3、二进制转换为十六进制

方法:我们通常使用 8421 的方法来标记,从二进制转换为十六进制;

      首先我们先将二进制数值分成四位字段,从右往左,若左边不够四位可用零来填充;

       然后在每一段上面从左往右分别标记8421 ,将是1的对应的8421的值相加,再将每段得到的相加的结果相接,即可获得十六进制数值。

如:(1111 1101 1010 0101 1001 1011)2 =(FDA59B)16

即:(8+4+2+1)+(8+4+1)+(8+2)+(4+1)+(8+1)+(8+2+1)=(15 + 13 + 10 + 5+ 9 + 11) 其中 15 表示:F  13表示:B   10表示:A   11 表示:B

 

4、八进制转换为二进制

      方法:从二进制转八进制中我们采用了 421 方法,同样的我们从八进制转二进制也可采用相同的方法,只是我们把思想倒过来。

      同样是 421 方法,八进制数值中的每一个单独分开来,再看该数是由 421 中哪些数相加获得的,同样在 421中如果该三个数中其中那些数被用到,则用1表示,否则用0表示。

最后再将 转换后的数字相接  即可获得二进制数值

如:(6562)8  =(110 101 110 010)2

      即:6 =4+2    二进制表示: 110

             5 =4+1                              101

             6 =4+2                              110

             2 =2                                  010

      即为  110 101 110 010

若出现小数部分,则小数部分也采用整数转换方式421 拼凑法来实现。

例如8进制数75.36对应的二进制就是111101.011110


5、            八进制转换为十进制

方法:八进制就是逢8进1,八进制采用0~7 这八个数来表达一个数。

将一个八进制数转换为十进制即分别在该数上从右往左依次记为 8的次方,次方从0开始,直至最左位。

如:  (1507)8  = (839)10 

 即:7 * 80 +0 * 81 + 5 *82+ 1 * 8 =7+0+320+512=839

 

6、八进制转换为十六进制

      方法:我没搜索到八进制直接转换为十六进制方法,但是看到可以间接转化。即先将八进制转换为二进制,在从二进制转化为十六进制,我想这因该也是一种可行的方法。其中的转换参考以上所述。

如:(6562)8  =(110 101 110 010)2

      (1101 0111 0010)2  =(D72)16

小数:(31.5)(八)

  整数部分:

  3*8(1)+1*8(0)=25

  小数部分:

  5*8(-1)=0.625

  所以(31.5)(八)=(25.625)(十)

 

7、十进制转换为二进制

1)方法:将要转换的的数字除以2,得到商和余数,将商继续除以2,直到商为0,最后将所有的余数倒叙排列,得到的数就是转换结果;可以整除标为0,否则标为1

      将商和余数由余数由下往上的方向依次获得的0 和1组成的数字就是二进制。

如(123)10 = (111011)2

2)小数:已知十进制数:25.625

  整数部分:

  25/2=12......1

  12/2=6 ......0

  6/2=3 ......0

  3/2=1 ......1

  1/2=0 ......1

  然后我们将余数按从下往上的顺序书写就是:11001,那么这个11001就是十进制25的二进制形式

  小数部分:

  0.625*2=1.25

  0.25 *2=0.5

0.5 *2=1.0

然后我们将整数部分按从上往下的顺序书写就是:101,那么这个101就是十进制0.625的二进制形式

  所以:(25.625)10=(11001.101)2

 

8、十进制转换为八进制

方法:跟十进制转换为二进制方法相似的,区别是将要转换的的数字除以8,得到商和余数,将商继续除以8,直到商为0,最后将所有的余数倒叙排列,得到的数就是转换结果;可以整除标为0,否则标为1

      将商和余数由余数由下往上的方向依次获得的0 和1组成的数字就是二进制。

如(120)10 = (170)8

(25.625)(十)

  整数部分:

  25/8=3......1

  3/8 =0......3

  然后我们将余数按从下往上的顺序书写就是:31,那么这个31就是十进制25的八进制形式

  小数部分:

  0.625*8=5

  然后我们将整数部分按从上往下的顺序书写就是:5,那么这个0.5就是十进制0.625的八进制形式

  所以:(25.625)(十)=(31.5)(八)

负数:的进制转换稍微有些不同。

  先把负数写为其补码形式(在此不议),然后再根据二进制转换其它进制的方法进行。

  例:要求把-9转换为八进制形式。则有:

  -9的补码为11110111。然后三位一划

  111---->7

  110---->6

  011---->3

  然后我们将结果按从下往上的顺序书写就是:367,那么367就是十进制数-9的八进制形式。

 

9、十进制转换为十六进制

方法:跟十进制转换为二进制方法相似的,区别是将要转换的的数字除以16,得到商和余数,将商继续除以16,直到商为0,最后将所有的余数倒叙排列,得到的数就是转换结果;可以整除标为0,否则标为1

      将商和余数由余数由下往上的方向依次获得的0 和1组成的数字就是二进制。

如(120)10 = (78)16

小数:(25.625)(十)

  整数部分:

  25/16=1......9

  1/16 =0......1

  然后我们将余数按从下往上的顺序书写就是:19,那么这个19就是十进制25的十六进制形式

  小数部分:

  0.625*16=10(即十六进制的A或a)

  然后我们将整数部分按从上往下的顺序书写就是:A,那么这个A就是十进制0.625的十六进制形式

  所以:(25.625)(十)=(19.A)(十六)

 

10、十六进制转换为二进制

方法:从二进制转十六进制中我们采用了 8421方法,同样的我们从十六进制转二进制也可采用相同的方法,只是我们把思想倒过来。

      同样是 8421 方法,十六进制数值中的每一个单独分开来,再看该数是由 8421 中哪些数相加获得的,同样在 8421中如果该四个数中其中那些数被用到,则用1表示,否则用0表示。

最后再将 转换后的数字相接  即可获得二进制数值

如: (FDA59B)16  =(1111 1101 1010 0101 10011011)2

 

      即:15 =8+4+2+1   二进制表示:1111

             13=8+4+1                                1101

             10 =8+2                                 1010

             5 =4+1                                    0101

             9=8+1                                      1001

             11=8+2+1                                 1011

      即为  1111 1101 1010 0101 1001 1011

 

11、十六进制转换为八进制

      方法:先将十六进制转换为二进制,再将二进制转换为八进制

      如:(FDA59B)16  =(1111 1101 1010 0101 10011011)2

(111 111 011 010 010 110 011 011)2  =(77322633)8

 

12、十六进制转换为十进制

      方法:将一个十六进制数从右往左可标记为16的次方,次方从0开始,直到最左边。;再将该数与对应的16的次方相乘。

如:(2AF5)16 = (10997)10

其中(A表示10,而F表示15)

即:5 * 160+ F * 161 + A * 162 +2 * 163 = 5+240+2560+8192=10997

小数:(19.A)(十六)

  整数部分:

  1*16(1)+9*16(0)=25

  小数部分:

  10*16(-1)=0.625

  所以(19.A)(十六)=(25.625)(十)
0 0