我不知道如何从分数转换为二进制。当我搜索它时,有一个解决方案显示:
1 1
-- (dec) = ---- (bin)
10 1010
0.000110011...
-------------
1010 | 1.0000000000
1010
------
01100
1010
-----
0010000
1010
-----
01100
1010
-----
0010
我不知道如何以及为什么要这样做。
答案 0 :(得分:3)
让我们看一下将0.625
的十进制值转换为二进制值。
步骤1:从小数部分开始并乘以2.结果的整数部分是该点右侧的第一个二进制数字。
Because .625 x 2 = 1.25, the first binary digit to the right of the point is a 1.
So far, we have .625 = .1??? . . . (base 2) .
第2步:接下来我们忽略前一个结果的整数部分(本例中为1)并再次乘以2。这个新结果的整数部分是该点右侧的第二个二进制数字。我们将继续这个过程,直到我们得到零作为小数部分或直到我们识别出无限重复模式。
Because .25 x 2 = 0.50, the second binary digit to the right of the point is a 0.
So far, we have .625 = .10?? . . . (base 2) .
第3步:忽略前一个结果的整数部分(这个结果是.50所以在这种情况下实际上没有整数部分可以忽略),我们再次乘以2。结果的整数部分现在是该点右侧的下一个二进制数字。
Because .50 x 2 = 1.00, the third binary digit to the right of the point is a 1.
So now we have .625 = .101?? . . . (base 2) .
第4步:事实上,我们不需要第4步。我们已经完成了第3步,因为我们在那里得到0作为结果的小数部分。
Hence the representation of .625 = .101 (base 2) .
十进制1/10转换为无限二进制分数。
在您的问题中,您说二进制的1/10
十进制等于1/1010
。十进制的.1 (1/10)
实际上等于0.0 0011 0011 0011 0011 ...二进制。
答案 1 :(得分:1)
二进制数转换的小数值
分数值乘以2和 结果有一个小数(1或0)和一个分数值。
取第1步操作的派系值。
重复过程,直到分数值达到0。
从下到上收集小数值
分数= .125
= .125 x 2
= 0.250 x 2
= 0.50 x 2
= 1.0
分数= 0.125 = 100
结果
给定分数值(基数10)= 0.125
到二进制位(基数2)= 0.100
答案 2 :(得分:0)
在二进制加权分数中,小数点右边的每个数字是(1/2)(或2的幂的负数)的幂,小于左边的数字。第一个向右数字的权重为1/2,第二个数字为1/4,第三个为1/8,依此类推。
所以0.111(base-2)是:
1*(0.5) + 1*(0.25) + 1*(0.125) = 0.875
0.0101(base-2)是:
0*(0.5) + 1*(0.25) + 0*(0.125) + 1*(0.0625) = 0.3125
它与二进制整数没有什么不同,除非我们向右移动小数点时将其扩展为2的负幂。
我希望至少解决你问题的一部分。