【发布时间】:2019-01-30 19:47:12
【问题描述】:
我有一个这样排列的 uchar 数组:
uchar a={LowByte_val1 HighByte_val1 LowByte_val2 HighByte_val2 ...};
如何将此数组转换为(无循环)
uint b= [val1 val2 ...];
在哪里
val1 = LowByte_val1+(HighByte_val1<<8);
我使用这个解决方案。
typedef union {
struct {
uchar lsb;
uchar msb;
}byteModel;
unsigned int data;
}XXX;
和
uchar a[24]={0,0,0,1,0,2,0,3, 1,0,1,1,1,2,1,3, 2,0,1,1,2,2,2,3};
XXX *input = new XXX[12];
然后:
memcpy(input,a,24);
但没有工作:(。
【问题讨论】:
-
你能详细说明为什么没有循环吗?只是好奇,因为这听起来有点武断。
-
memcpy使用循环。 -
似乎你假设
int是 16 位,这是非常罕见的,更没有保证。
标签: c++