【发布时间】:2010-10-31 21:49:14
【问题描述】:
我知道如何将二进制转换为十进制。我至少知道 2 种方法:table 和 power ;-)
我想将二进制转换为十进制并打印这个十进制。此外,我对这个“小数”不感兴趣;我只想打印出来。
但是,正如我在上面所写的,我只知道将二进制转换为十进制的两种方法,而且它们都需要加法。因此,我正在计算二进制 1 或 0 的一些值,并将其添加到记住的值中。这是一个很薄的地方。我有一个非常非常大的数字(1 和 64 个零)。在转换时,我需要将一些中间结果放在一些“变量”中。在 C 中,我有一个 `int' 类型,它只有 4 个字节并且不超过 10^11。
所以,在从二进制转换为十进制时,我没有足够的内存来存储中间结果。正如我上面写的,我对那个小数不感兴趣,我只想打印结果。但是,我没有看到任何其他方法来解决它;-( 有没有从二进制“打印”的解决方案?
或者,也许,我应该使用像 BCD(二进制编码的十进制)这样的东西来表示中间表示?我真的不想用这个,因为它不是那么跨平台(英特尔的处理器有一个内置的功能,但对于其他的我需要编写自己的实现)。
我很高兴听到你的想法。感谢您的耐心。
语言:C.
【问题讨论】:
-
只是一个问题,这个二进制数是如何存储的?
-
将随机位(或四位序列)转换为十进制数字并非易事。我们希望能做到这一点的最著名的例子是使用 pi 的 BPP 算法:你可以计算任何位或任何 hex 数字,但你可以' t 使用该算法获取十进制数字(除非您想进行大量转换)
标签: c binary decimal bignum bcd