如何表示大于64位的二进制数量大小
How to represent a binary number size greater than 64 bit
我有一个我想在十进制中表示的二进制号。数字如下:
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小数。
相关文章:
- 在 64 位边界上对齐C++结构数组?
- 浮点数为 32 位和 64 位二进制表示形式
- 以 10 c++ 为基数显示 1024 位二进制数
- 二进制数和位标志'x'
- 是否可以在 64 位系统中为 11 位系统中的图形创建位邻接数组
- 使用位黑客反转二进制数
- 在 64 位 Linux armv8 计算机上编译 32 位二进制文件时遇到问题
- 如何将二进制64位字符串转换为C 中的UINT64_T
- 如何将 32 位编译二进制转换为 64 位
- 无法在 64 位 Debian 上运行 32 位二进制文件
- 读取 64 位整数二进制文件
- C++ 在 64 位平台中传递字符数组地址
- 每个值64位整数的数字应转换为位等效的64位浮数
- 在64位系统上创建一个非常大的数组的缺点是什么
- 将超过 64 位的数组转换为基数为 10 的字符串
- 将长 64 位十进制转换为二进制
- 如何表示大于64位的二进制数量大小
- 64位C++二进制文件消耗巨大的内存,即使二进制文件的大小也是巨大的
- 32位到64位的C++二进制写入/读取
- 使用硬件内存保护对64位硬件进行数组边界检查