小数点怎么转换为二进制

比如下面这样一个问题:
---------------------------------------------------
0.2化二进制是
0.2*2=0.4,整数位为0
0.4*2=0.8,整数位为0
0.8*2=1.6,整数位为1,去掉整数位得0.6
0.6*2=1.2,整数位为1,去掉整数位得0.2
0.2*2=0.4,整数位为0
0.4*2=0.8.整数位为0
就这样推下去!小数*2整,一直下去就行
这个数整不断
0.0011001
---------------------------------------------------

这个乘2 到底要乘到什么时候? 为什么最后得出0.8就停止了?

十进制数0.2要用二进制数来表示的话,是一个循环小数,无法精确表达。只能根据精度需要,截取小数点后若干位来表示了。追问

就是说小数点 转二进制 会一直循环吗? 我只需要把会循环的数字写出来就够了?

不过我问的不单只是0.2 ,还有包括其他的小数点

追答

不是说所有的十进制小数转换成二进制数后都是循环小数,有的可以精确表达,但大多数是无法精确表达的,只能用循环小数和无穷小数来表达,只好约等于小数点后若干位的精确度。

追问

能举例几个能精确表达的吗? 我想知道要乘到什么时候

追答

0.5d=0.1b,0.25d=0.01b,0.125d=0.001b,0.0625d=0.0001b。是不是看出点规律来了:
1/2=0.1b,1/4=0.01b,1/8=0.001b,1/16=0.0001b。凡是分母是2的整数次幂的分数(小数),都可以用二进制小数精确表达。当然,它们的和也就可以用二进制小数精确表达。例如1/2+1/4=3/4=0.75d=0.11b。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-02-04
整数部分除2取余,小数部分乘2取整数部分。追问

我知道,但我问的不是这个, 我问的是 在最后 0.4*2=0.8 , 为什么0.8不继续乘2?
要达到什么条件才停下来

相似回答