猿问

问一个二进制小数的题

就是把十进制0.8化为二进制数

我的方法就是0.8*2=1.6=0.6+1

                     0.6*2=1.2=0.2+1

                     0.2*2=0.4=0.4+0

                     0.4*2=0.8=0.8+0

             本来想这样小数部分一直乘以2,然后乘到最后没有小数部分,然后再从最开始求得的整数值往下排列,便可得到二进制数,但大家都看到上面的了,总是最后又回到0.8再循环,这该怎么办呀?

suxiao
浏览 1617回答 2
2回答

evilShit

如果出现小数部分永不为0即循环小数的情况,是因为存在转换误差。需要根据转换精度的要求来确定转换后的二进制小数的位数。例如 若要求转换精确到10^-k,假设转换 后的二进制小数的位数是m位,则可根据m>=3.32k方便的计算出转换后的二进制小数的位数。
随时随地看视频慕课网APP
我要回答