在一些十六进制值

时间:2017-05-22 16:11:05

标签: c

你好,我正在努力的不是项目,我必须在我的十六进制数据字符串上添加2位消息ID,我不知道怎么做,你的帮助将不胜感激

char *fn = "\x60\x45\xd3\x94\x48\0x7c\0x19\xde\xea\x9a\x3e\x0e\xda\xc4\x9b\x81\x28\xb1\x0b\xff\</sensors>;ct=40;title=Sensor Index,</sensors/temp>;rt=temperature-c;if=sensor,</sensors/light>;rt=light-lux;if=sensor";

我需要在

之后添加2位消息ID

1 个答案:

答案 0 :(得分:0)

在两个自定义芯片之间,您可能能够发送2位数据,但在现代计算机上,它必须以8位对齐。因此,即使很难发送2位,您也需要用6位填充它来发送整个字节。这转换为在你的fn字符串中添加一个字符。

char *fn = "\x60\x45\xd3\x94\x48\0x7c\0x19\xde\xea\x9a\x3e\x0e\xda\xc4\x9b\x81\x28\xb1\x0b\xff\</sensors>;ct=40;title=Sensor Index,</sensors/temp>;rt=temperature-c;if=sensor,</sensors/light>;rt=light-lux;if=sensor";

int msgid = 0b11;
int fnlen = strlen(fn);
char fn2[fnlen + 2];

strcat(fn2, fn);
fn2[fnlen] = (char) msgid;
fn2[fnlen + 1] = '\0';