【发布时间】:2018-12-03 09:10:34
【问题描述】:
我的数据字段如下DATA = 0x02 0x01 0x02 0x03 0x04 0x05 0x06 0x07 现在我想将这些数据连接起来如下DATA = 0x01020304050607。我如何使用 C 程序来做到这一点。我在C语言中找到了一个用于连接数组中数据的程序,程序如下:
#include<stdio.h>
int main(void)
{
int num[3]={1, 2, 3}, n1, n2, new_num;
n1 = num[0] * 100;
n2 = num[1] * 10;
new_num = n1 + n2 + num[2];
printf("%d \n", new_num);
return 0;
}
对于数组中的十六进制数据,我该如何操作上面的程序来连接十六进制数据?
【问题讨论】:
-
printf("%x", (unsigned int)((n[0] << 16) + (n[1] << 8) + n[2])); -
是
char num[3]={1, 2, 3}吗? -
嗯,最简单的方法是
const unsigned char data[] = {0x01, 0x02, 0x03, ...};- 所有这些元素将按此顺序一个接一个地存储在连续的内存段中。 -
DATA = 0x01020304050607需要一个 64 位变量。甚至DATA = 0x0201020304050607取决于您想要的版本。 -
data[] 的类型为
uint8_t data[8];,不能为unsigned char
标签: c arrays hex concatenation