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

时间:2018-12-11 10:48:53

标签: string math language-agnostic microcontroller

我想显示一个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)

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

谢谢。

2 个答案:

答案 0 :(得分:1)

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

要进行打印,您可以使用以下方法:

因此,首先打印一个在任何位宽上都很容易的十六进制字符串(因为您只需将较低位宽的打印内容从MSW堆叠到LSW即可),然后将十六进制文本转换为dec文本...

使用此链接的单位数组,您可以执行如下数学运算:

uint数组上执行操作比在字符串上执行操作要快得多...

但是如果您坚持要使用,也可以使用字符串表示形式...

也有类似BCD的混合表示形式,但是您的MCU需要对此提供支持...

答案 1 :(得分:1)

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