当硬件不支持 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)上也是如此。
如果是这种情况,问题就变得微不足道了:计算值,然后计算相应的十六进制字符串。
我想将 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)上也是如此。 如果是这种情况,问题就变得微不足道了:计算值,然后计算相应的十六进制字符串。