char str[4] = {0x00,0x01,0x18,0x04};
怎么取得 0x00,0x01,0x18 的整数值是多少
typedef struct
{
int nLen : 24;
int nType : 8;
}protocol;
前三个字节表示长度.最后一个字节表示类型,0x0118 转十进制表示280
memcpy(&protocol,str,4); 这样为什么不行呢,应该怎么处理
你希望的整数是0x000118,还是0x180100呢?
int类型本身就是4个字节,不需要再去定义一个结构体了。
int vv;
memcpy(&vv,str,4); //memcpy需要注意字节序的问题。
你拿到数组之后要先把它拆开,重新构造一个数组,里面是要转int的数据,04不要放在里面,另外定义变量去存