【发布时间】:2016-10-30 09:02:08
【问题描述】:
我知道教科书的方法,我们将尾数乘以 2 ,将其整数部分作为下一位,将小数部分乘以 2 并重复,直到我们得到零或达到所需的精度。
有没有比上述算法有效的将尾数从10进制转换为2进制的算法?
【问题讨论】:
-
定义高效。这是一个 O(n) 算法 - 有些人会说它足够高效。
-
O(log n) 怎么样?
-
或者一种算法,我可以通过一次乘法获得多个位。如果常数足够小,是否为 O(n) 无关紧要,因为我不必转换大数。
-
我的意思是,你不能只做
x = your_number并打印出它的位吗?该数字在内部以二进制形式存储,因此您不会真正使用计算机进行转换(它已经以二进制形式存储)。 -
不,这是为了演示。