gpt4 book ai didi

将整数值转换为十六进制值

转载 作者:行者123 更新时间:2023-11-30 17:55:45 25 4
gpt4 key购买 nike

我在 xilinx 中有这个函数,用于将输出提供给七段。

int result;
XIo_Out32(XPAR_SSG_DECODER_0_BASEADDR, result);

该函数获取 int 结果并将输出作为十六进制值放入七段。所以基本上,如果我给出 result = 11;我会在七段中看到 A 作为结果。要查看 sseg 上的十进制值,一种方法是更改​​其背后的 verilog 代码并更改 sseg 的整个概念。另一种方法是编写一个将十进制值更改为十六进制值的函数。我一直在为此寻找一个好的代码块,但似乎每个代码块都用循环逐位打印值。我需要整个值作为一个 block 。不幸的是我不能使用 C++ 库,所以我有原始的 C 代码。是否有任何已知的转换算法?

最佳答案

显然,您想要将符号代码从 ASCII 转换为 7 段显示字符集中的符号代码。如果是这样,您可以创建一个简单的映射,可能是一个由 ASCII 字符 id 索引的代码数组。然后,您将能够像这样调用您的函数:

XIo_Out32(XPAR_SSG_DECODER_0_BASEADDR,  'A');

要小心地实现整个 ASCII 范围的映射表。

编辑

抱歉,我问错了你的问题。您必须手动将十六进制数转换为十进制符号数组。您可以通过将您的数字除以 10 的递增幂(10^0、10^1、10^2 等)来完成此操作,从而得到一个余数数组,它是您的数字的十进制表示形式。您可以按照 H2CO3 的建议使用 snprintf,但我建议不要在某些 RAM 有限的嵌入式应用程序中使用它;您甚至可能根本无法使用类似 sprintf 的函数。

关于将整数值转换为十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14021610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com