gpt4 book ai didi

在 C 中将十六进制转换为字符串?

转载 作者:太空狗 更新时间:2023-10-29 17:19:41 25 4
gpt4 key购买 nike

您好,我正在使用 digi dynamic c。我正在尝试将其转换为字符串

char readingreg[4];
readingreg[0] = 4a;
readingreg[1] = aa;
readingreg[2] = aa;
readingreg[3] = a0;

目前,当我执行 printf 语句时,它必须是这样的:

printf("This is element 0: %x\n", readingreg[0]);

但我想在字符串中使用它,所以我可以像这样使用 printf 语句

  printf("This is element 0: %s\n", readingreg[0]);

我本质上是通过 TCP/IP 端口发送 readingreg 数组,为此我需要将其作为字符串。我似乎无法将其转换为字符串。谢谢你的帮助。此外,如果有人可以告诉我如何一次处理每个元素而不是整个数组,那也很好,因为只有 4 个元素。

最佳答案

0xaa 当普通 char 被签名时溢出,使用 unsigned char:

#include <stdio.h>

int main(void)
{
unsigned char readingreg[4];
readingreg[0] = 0x4a;
readingreg[1] = 0xaa;
readingreg[2] = 0xaa;
readingreg[3] = 0xa0;
char temp[4];

sprintf(temp, "%x", readingreg[0]);
printf("This is element 0: %s\n", temp);
return 0;
}

关于在 C 中将十六进制转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25630947/

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