二进制的换算

二进制的换算
进位计数制之间的转换




不同进位计数制之间的转换,实质是基数转换。一般转换的原则是:如果两个有理数相等,则两个数的整数部分和小数部分一定分别相等。因此,数制之间进行转换时,通常对整数部分和小数部分分别进行转换。






1.     十进制数转换为二进制数(N进制数)






方法:整数部分采取“除2取余法”,小数部分采取“乘2取整法”。






例如:将十进制(123.75) 10转换为二进制数






整数部分123转换如下(除2取余):









2    123     1





2     61      1





2     30     0





2     15      1





2       7      1





2       3      1





2       1      1











        0





















结果为:1111011






小数部分0.475转换如下:














                0.475  ×2











0               0.950  ×2











1               1.9





                 0.9    ×2











1               1.8





                 0.8   ×2











1               1.6





                  0.6  ×2














1                1.2 



                  0.2  ×2












0                 0.4  ×2











0                 0.8  ×2














1                 1.6



                   0.6   ×2






















结果为:0.01111001






说明:对于大多数小数,转换的结果只能无限逼近,无法绝对相等。












即 (123.475)10 ≈ (1111011.01111001)2






2.     非十进制数之间的相互转换






1)     八进制数与二进制数之间的转换






由于一位八进制数相当于三位二进制数,因此,要将八进制数转换成二进制数时,只需以小数点为界,向左或向右每一位八进制数用相应的三位二进制数取代即可。如果不足三位,可用零补足之。反之,二进制数转换成相应的八进制数,只是上述方法的逆过程,即以小数点为界,向左或向右每三位二进制数用相应的一位八进制数取代即可。






例如:将八进制数(357.162)8转换成二进制数。






       3     5     7  ·  1     6     2






      011   101   111     001   110   010












即(357.162)8 = (11101111.0011101)2












例如:将二进制数(101011110.10110001)2转换成八进制数。






      101   011   110   ·   101   100    010






       5     3     6          5     4      2












即(101011110.10110001)2 = (536.542)8












2)     十六进制数与二进制数之间的转换






由于一位十六进制数相当于四位二进制数,因此,要将十六进制数转换成二进制数时,只需以小数点为界,向左或向右每一位十六进制数用相应的四位二进制数取代即可。如果不足四位,可用零补足之。反之,二进制数转换成相应的十六进制数,只是上述方法的逆过程,即以小数点为界,向左或向右每四位二进制数用相应的一位十六进制数取代即可。






例如:将十六进制数(5AB.8CE)16转换成二进制数。






       5      A      B  ·    8     C     E






      0101   1010   1011     1000   1100   1110






即(5AB.8CE)16 = (10110101011.10001100111)2






例如:将二进制数(1100101001011.001100101)2转换成十六进制数。






      0001  1001   0100    1011 ·   0011   0010    1000






        1     9      4      B         3      2       8






即(1100101001011.001100101)2 = (194B.328)16

posted @ 2010-06-09 18:13  christinie  阅读(1785)  评论(0)    收藏  举报