实数进制转换:十进制转成二进制

Catalog 目录

  • 1.1 十进制整数转换为二进制整数

  • 1.2 十进制小数转换为二进制小数

  • 1.3 十进制转二进制综合案例

1.1 十进制整数转换为二进制整数

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。

具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

如:255(10)= 11111111(2)

255/2=127=====余1

127/2=63======余1

63/2=31=======余1

31/2=15=======余1

15/2=7========余1

7/2=3=========余1

3/2=1=========余1

1/2=0=========余1

1.2 十进制小数转换为二进制小数

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。

具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

如:0.625=(0.101)B

0.625*2=1.25======取出整数部分1

0.25*2=0.5========取出整数部分0

0.5*2=1 ==========取出整数部分1

再如:0.7=(0.1 0110 0110...)B

0.7*2=1.4========取出整数部分1

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.8*2=1.6========取出整数部分1

0.6*2=1.2========取出整数部分1

0.2*2=0.4========取出整数部分0

1.3 十进制转二进制综合案例

十进制的二进制表示:

  1. 整数部分:除以2,取出余数,商继续除以2,直到得到0为止,将取出的余数逆序;

  2. 小数部分:乘以2,然后取出整数部分,将剩下的小数部分继续乘以2,然后再取整数部分,一直取到小数部分为零为止。如果永远不为零,则按要求保留足够位数的小数,最后一位做0舍1入。将取出的整数顺序排列。

举例:22.8125 转二进制的计算过程:
 
整数部分:除以2,商继续除以2,得到0为止,将余数逆序排列。
22 / 2      11 余 0
11 / 2       5  余 1
5  / 2        2  余 1
2  / 2        1  余 0
1  / 2        0  余 1
得到22的二进制是10110
 
小数部分:乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列。
0.8125x2 = 1.625     取整1, 小数部分是0.625
0.625x2   = 1.25       取整1, 小数部分是0.25
0.25x2     = 0.5         取整0, 小数部分是0.5
0.5x2       = 1.0         取整1, 小数部分是0
得到0.8125的二进制是0.1101
 
结果:十进制22.8125等于二进制00010110.1101
即:1.01101101*e^4
    这里我们按“IEEE-754”将其用16进制表示为:
    1、符号 0
    2、偏移指数 83 (4 + 0x7F)
    3、有效数字 01101101
  即
    二进制      0 100 0001 1 011 0110 1000 0000 0000 0000
    十六进制    4    1    b    6    8    0    0    0

猜你喜欢

转载自blog.csdn.net/qq_39478139/article/details/105772585