1,我们在处理数据时,很多时候系统不兼容的情况,比如我们有时候需要将32位数据移植到16位机器上,直接处理会导致数据截断,我们怎么处理呢。
//32位转 16位
typedef struct
{
unsigned short data_high;
unsigned short data_low;
}short_data;
int main()
{
unsigned int test_data = 0x11007766;
short_data s_data;
s_data.data_high = 0xffff0000 << 16;
s_data.data_low = test_data;
printf("data_high:%x,data_low:%x\n",s_data.data_high,s_data.data_low );
}
//16位转32位
int main()
{
short data = 0x1234; //high
short data2 = 0x1122; //low
int test_data;
test_data = data << 16 | data2;
printf("data:%x\n",test_data);
}