【发布时间】:2021-02-26 04:00:09
【问题描述】:
我很难理解为什么这个递归算法在数学上可以将十进制转换为二进制。
我知道二进制代码中的最后一位决定十进制数是奇数还是偶数,因此我们可以使用余数(%)来确定最后一位是 0(奇数)还是 1(偶数)。然而,我的思考过程到此为止,我很困惑为什么可以通过将小数除以 2 来计算 2 到更高次方的数字,然后检查它的 %2,如图所示。
有人可以帮我理解转换背后的逻辑吗?非常感谢!
【问题讨论】:
我很难理解为什么这个递归算法在数学上可以将十进制转换为二进制。
我知道二进制代码中的最后一位决定十进制数是奇数还是偶数,因此我们可以使用余数(%)来确定最后一位是 0(奇数)还是 1(偶数)。然而,我的思考过程到此为止,我很困惑为什么可以通过将小数除以 2 来计算 2 到更高次方的数字,然后检查它的 %2,如图所示。
有人可以帮我理解转换背后的逻辑吗?非常感谢!
【问题讨论】:
这是根据基数计算数字的方法,您可以对每个基数b>1进行计算。例如,相同的数字应该以 b = 3 为底数表示
Start Conversion from base 10 to base 3
26/3 = 8 + 2
8/3 = 2 + 2
(26)_10 = (222)_3
Proof
2*3^2 + 2*3 + 2*1 = 18+6+2 = 26
【讨论】: