3

我有一个二进制数,我想用十进制表示。编号如下:

Binary = 1000 11100000 00000000 00000000 00000000 00000000 01101110 10110000 10100101  

其等效的十六进制表示如下:

Hexadecimal = 08 E0 00 00 00 00 6E B0 A5

我在 Windows 7 上工作,并尝试在程序员模式下使用 Bin(二进制)和 Qword 中的计算器。但是,它有 64 位的限制。

问题:

  • 我如何用十进制表示这个数字?
  • 有没有免费的工具可以代表这个数字?
  • C++11/C++ 中有什么方法可以实现这一点吗?
4

3 回答 3

5

首先确定您的平台将支持多大的二进制数。假设它是 64。将你的二进制数分成 64 的块,并像往常一样做低位块。现在,下一个块的低位表示 2 64。将该块转换为常规数字,但将其乘以 2 64。您可以根据需要多次使用此技术。您将乘以 2 128的下一个块,然后乘以 2 192等。

于 2012-10-22T05:24:30.553 回答
0

我认为你应该参考这个

如果您要使用 JAVA,可以使用 BigInteger 类,请点击此处

或下载此用户定义的库,用于在 C++ 中对大数执行计算,请点击此处

于 2012-10-22T05:22:04.703 回答
0

更简单的解决方案可能是从另一边工作。生成所有 10 的幂的二进制表示:0x1, 0xA, 0x64, 0x3E8, 0x2710, ...直到 10 的幂大于您的数字。然后,计算每个 10 的幂出现了多少次(当然最多 9 次)。

0x2F也是如此4 * 0xA + 7 * 0xA,即十进制的 47 位。

于 2012-10-22T10:30:38.563 回答