8位转16位
将2个8位数据high、low合成一个16位数据data_u16:
data_u16 = (high<<8) | low;
16位转8位
将一个16位数据data_u16拆分成2个8位数据high、low:
high = (data_u16 >> 8) & 0xff; //高8位
low = data_u16 & 0xff; //低8位
8位转32位
将4个8位数据data_u8[4]合成一个32位数据data_u32:
data_u32 = (data_u8[0]<<24)|(data_u8[1]<<16)|(data_u8[2]<<8)|data_u8[3];
32位转8位
将一个32位数据data_u32拆分成4个8位数据data_u8[4]:
data_u8[0] = (data_u32 >> 24) & 0xff;
data_u8[1] = (data_u32 >> 16) & 0xff;
data_u8[2] = (data_u32 >> 8) & 0xff;
data_u8[3] = data_u32 & 0xff;
//高位在前,低位在后
16位转32位
将2个16位数据data_u16[2]合成一个32位数据data_u32:
data_u32 = (data_u16[0]<<16)|data_u16[1];
32位转16位
将一个32位数据data_u32拆分成2个16位数据data_u16[2]:
data_u16[0] = (data_u32 >> 16) & 0xffff; //高16位
data_u16[1] = data_u32 & 0xffff; //低16位