如何表示大于64位的二进制数量大小

How to represent a binary number size greater than 64 bit

本文关键字:二进制数 64位 大于 何表示 表示      更新时间:2023-10-16

我有一个我想在十进制中表示的二进制号。数字如下:

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 中是否有任何方法可以实现这一目标?

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

我认为您应该引用此信息。

,如果您要去Java,可以使用Biginteger类。

或下载此用户定义的库,用于在C 中对大数字进行计算,此处。

更容易的解决方案可能是从另一侧工作。生成10:0x1, 0xA, 0x64, 0x3E8, 0x2710, ...的所有功率的二进制表示,直到10的功率大于您的数字。然后,计算每种10功率发生的次数(当然最多9个)。

所以0x2F将是4 * 0xA + 7 * 0xA,即47小数。