【发布时间】:2019-12-11 13:58:03
【问题描述】:
有一种特殊的方法可以将十进制数(带有小数点,例如 xx.xx)转换为二进制数。详细在这里:https://www.geeksforgeeks.org/convert-decimal-fraction-binary-number/
我可以应用此过程,但无法理解它为何有效。
基本上,它计算小数点左侧和右侧分开 - 这部分我没有问题。 例如,如果我们有 6.9,它将从计算左侧开始:6。
6 除以 2 得到 3,余数为 0。
3 除以 2 得到 1,余数为 1。
1 除以 2 得到 0,余数为 1。
由于某种原因,它现在取 this 的 REVERSE,即 110,而 this 神奇地变成了 6。 我不明白为什么最低有效除法的余数(1 除以 2)现在用在答案的最高有效位中,而这在某种程度上是有效的。
同样对右侧的方法有效的原因感到困惑。
对于将小数转换为二进制的特定过程,是否有人可以分享一些直觉?同样,我执行计算没有问题,因为计算很容易。我只是不明白为什么会这样。
【问题讨论】: