在计算机中,数字的运算与存储都是通过二进制的方式进行的,所有的数字都是通过“十进制转二进制”的方式在计算机中显示的。
十进制小数转二进制小数的方法是:(整数部分转整数部分,小数部分转小数部分)
小数部分转小数部分的方法为:
具体操作方法为:
- 小数部分乘以二,得到一个乘积,取乘积的整数部分;(若整数部分的乘积n,则取n)
- 乘积的小数部分再次乘以2,得到又一个乘积,取这一次乘积的整数部分;
- 按照上面的“乘2取乘积整数”,一直取值,直至乘积的小数部分为零时,结束;
- 将上述步骤中的整数值依次从左至右排列,此结果为该小数的二进制。
例1:
0.125转二进制:
运算 | 小数部分 | 整数部分 | 取值 |
0.125*2=0.25 | 0.25 | 0 | 0 |
0.25*2=0.5 | 0.5 | 0 | 0 |
0.5*2=1.0 | 0 | 1 | 1 |
取值顺序相加得到0.125的二进制为:0.0010 0000
例2:
0.1转二进制:
运算 | 小数部分 | 整数部分 | 取值 |
0.1*2=0.2 | 0.2 | 0 | 0 |
0.2*2=0.4 | 0.4 | 0 | 0 |
0.4*2=0.8 | 0.8 | 0 | 0 |
0.8*2=1.6 | 0.6 | 1 | 1 |
0.6*2=1.2 | 0.2 | 1 | 1 |
0.2*2=0.4 | 0.4 | 0 | 0 |
0.4*2=0.8 | 0.8 | 0 | 0 |
0.8*2=1.6 | 0.6 | 1 | 1 |
0.6*2=1.2 | 0.2 | 1 | 1 |
通过取值部分可以看出,0.1的出现了无限循环的情况
取值顺序相加得到0.125的二进制为:0.0001 1001 1001 1001......
由0.1转二进制可以看出,计算机无法准确存储0.1的二进制,其他小数同理。