C语⾔:8位、16位、32位数据转换
8位与16位互转
将2个8位数据u8_high、u8_low合成⼀个16位数据u16_data:
u16_data=(u8_high<<8)| u8_low;
16位转8位
将⼀个16位数据data_u16拆分成2个8位数据high、low:
u8_high =(u16_data>>8) & 0xff; // 高8位
u8_low = u16_data & 0xff; // 低8位
8位与32位互传
将4个8位数据u8_data[4]合成⼀个32位数据u32_data:
u32_data =(u8_data[0]<<24)|(u8_data[1]<<16)|(u8_data[2]<<8)|u8_data[3];
32位转8位
将⼀个32位数据u32_data拆分成4个8位数据u8_data[4]:
u8_data[0]=(u32_data>>24) & 0xff;
u8_data[1]=(u32_data>>16) & 0xff;
u8_data[2]=(u32_data>>8) & 0xff;
u8_data[3]= u32_data & 0xff;
⾼位在前,低位在后
16位与32位互转
将2个16位数据u16_data[2]合成⼀个32位数据u32_data:
u32_data =(u16_data[0]<<16)|u16_data[1];
32位转16位
将⼀个32位数据u32_data拆分成2个16位数据u16_data[2]:
u16_data[0]=(u32_data>>16) & 0xffff;//高16位
u16_data[1]= u32_data& 0xffff;//低16位