当硬件不支持 64 位数字时,可以将 64 位数字表示为字符串吗?

It is possible to represent a 64-bit number as string when hardware doesn't support 64-bit number?

我想将 64 位数字显示为字符串。问题是我的硬件不支持 64 位数字,只支持 32 位。

因此,我将 64 位数字拆分为两个 32 位数字(高位和低位部分)。

Example: 64-bit number  :  12345678987654321 (002B DC54 6291 F4B1h)
         32-bit low part:  1653732529                  (6291 F4B1h)
         32-bit high part: 2874452                     (002B DC54h)

我认为我的问题的解决方案是将此数字显示为字符串。 有可能吗?

谢谢。

是的,您可以使用 32 位 uint 或更低位宽的数组...

打印你可以使用这个:

  • hex to dec

所以首先打印一个在任何位宽上都很容易的十六进制字符串(因为你只是将较低位宽的打印从 MSW 叠加到 LSW),然后将十六进制文本转换为十进制文本...

使用这个链式单位数组,您可以像这样进行数学运算:

  • Cant make value propagate through carry

uint 的数组进行运算比对字符串进行运算要快得多...

但如果你坚持是,你也可以使用字符串表示...

也有像 BCD 这样的混合表示法适用于此,但您的 MCU 需要支持它...

根据您选择的语言,该语言可能允许您使用大于 32 位的整数,即使在 32 位架构(如 python)上也是如此。 如果是这种情况,问题就变得微不足道了:计算值,然后计算相应的十六进制字符串。