好吧,我一直在尝试将此整数转换为十六进制并已成功完成,但我需要使用此十六进制进行设置。现在为此我需要使用 char 而不是 char 数组。如果没有手动设置,其他任何方法都不起作用。也许问题出在我使用 sprintf 转换为十六进制的问题上,但无论哪种方式,我都确信有办法完成这项任务。现在我需要改变的是输出是 char z 但我还没有找到让它工作的方法。任何帮助是极大的赞赏。谢谢
编辑:现在这个代码可能没有直接意义,因为它不完整,而且我没有看到输入无关代码的目的。int x 永远不会超过 100,重点是将其转换为十六进制并将其写入我拥有的设置的内存中。所以我一直在试图弄清楚如何将整数转换为十六进制转换为字符。正如我刚刚注意到的那样,即使 sprintf 将其转换为存储在 char 中的字符串,也有人指出非字符串。但我需要将 int 转换为 hex 并将其分配给 char 变量 forbuse 稍后。这就是我卡住的地方。我不知道在不涉及字符串和其他内容的情况下以一种格式和方式完全完成所有这些工作的最佳方法。
VOID WriteSetting(int x)
{
char output[8];
sprintf(output, "0x%X", x);
char z = 0x46
unsigned char y = z
}
工作代码:
VOID WriteSetting(int x)
{
unsigned char y = (unsigned char)x;
Settingdb.Subset.Set = y;
}