【发布时间】:2021-02-04 17:56:53
【问题描述】:
我被教导将小数转换为二进制的方法是不断地将数字乘以 2,将整个部分添加到位串中,然后再乘以新的小数。这在某些情况下似乎有效,但在其他情况下,例如 0.32,它会导致无限循环。
0.32 * 2 = 0 + .64
0.64 * 2 = 1 + .28
0.28 * 2 = 0 + .56
0.56 * 2 = 1 + .12
0.12 * 2 = 0 + .24
0.24 * 2 = 0 + .48
0.48 * 2 = 0 + .96
0.96 * 2 = 1 + .92
0.92 * 2 = 1 + .84
0.84 * 2 = 1 + .68
0.68 * 2 = 1 + .36
0.36 * 2 = 0 + .72
0.72 * 2 = 1 + .44
0.44 * 2 = 0 + .88
0.88 * 2 = 1 + .76
0.76 * 2 = 1 + .52
0.52 * 2 = 1 + .04
0.04 * 2 = 0 + .08
0.08 * 2 = 0 + .16
0.16 * 2 = 0 + .32 // Loop
在这种情况下我该怎么办?
【问题讨论】: