为什么说不是所有十进制数都可以精确转换成等值的二进制数?

如题所述

因为十进制小数转换到二进制时可能会得到不精确值
十进制小数转换为二进制:小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列。

例如:0.8125

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 (精确转换)

以上是较理想情况下的转换,但大多数情况下是这样的
例如:0.81

0.81*2=1.62 取整1,小数部分是0.62

0.62*2=1.24 取整1,小数部分是0.24

0.24*2=0.48 取整0,小数部分是0.48

0.48*2=0.96 取整0,小数部分是0.96

0.96*2=1.92 取整1,小数部分是0.92

0.92*2=1.84 取整1,小数部分是0.84
……
就这样永远不能结束
一般根据需要,进行到某一步就停止了然后
十进制0.81 ≈ 二进制0.110011 (不完全精确转换)

扩展资料

二进制数转换

二进制数转换成十进制数

由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。 例1105 把二进制数110.11转换成十进制数。

十进制数转换为二进制数

十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

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

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

2.十进制小数转换为二进制小数

用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

参考资料:百度百科-十进制转换

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-24
因为十进制小数转换到二进制时可能会得到不精确值
十进制小数转换为二进制:小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列。

例如:0.8125

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 (精确转换)

以上是较理想情况下的转换,但大多数情况下是这样的
例如:0.81
0.81*2=1.62 取整1,小数部分是0.62
0.62*2=1.24 取整1,小数部分是0.24
0.24*2=0.48 取整0,小数部分是0.48
0.48*2=0.96 取整0,小数部分是0.96
0.96*2=1.92 取整1,小数部分是0.92
0.92*2=1.84 取整1,小数部分是0.84
……
就这样永远不能结束
一般根据需要,进行到某一步就停止了然后
十进制0.81 ≈ 二进制0.110011 (不完全精确转换)本回答被提问者采纳
第2个回答  2014-12-22
十进制小数并不一定能完全精确地转换成二进制小数。
第3个回答  2014-12-22
比如负数
第4个回答  2014-12-22
m
相似回答