gpt4 book ai didi

c - 在 C 中通过串行端口发送十六进制值

转载 作者:太空宇宙 更新时间:2023-11-04 08:26:35 25 4
gpt4 key购买 nike

我在理解以下内容时遇到了一些问题:

我将在 C 中实现一个真正的小协议(protocol)。协商服务器和客户端必须通过十六进制值交换信息。

当我回答来自客户端的请求时,我发送以下数组:

char array[] = { 0x00, 0x02, 0x01, 0x2F, 0x02 }

用 sizeof(array) 计算出的长度是 5。出于调试目的,我对数组进行了 printf。

for( i = 0; i < length; i++ ){
printf("%x", *(array + i));
}

输出为 0212F2。客户如何知道哪些值属于一起?还有更多的可能性,不是吗?也许是 0x00、0x21、0x02、0x0F、0x02,但这是不正确的。

谁能解释一下?

非常感谢:)

弗洛里安

最佳答案

首先将您的数组声明为unsigned char 数组。 char 可以根据实现方式进行签名或未签名,在您的情况下您需要未签名的情况。

然后使用:

   printf("%02hhx", array[i]);

如有必要,它将打印前导 0:

0002012F02

关于c - 在 C 中通过串行端口发送十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30225423/

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