uint16_t强转uint8_t数据丢失问题
1.uint32_t强转uint8_t
uint32_t强制类型转换位uint8_t时,保留低八位。
uint32_t num1 = 0xABCDEF;
uint8_t num2;
num2 = (uint8_t) num1;
此时,num2=0xEF。
uint32_t num1 = 0xABCDEF;
uint8_t num2;
num2 = (uint8_t) num1;
此时,num2=0xEF。num1相当于0x00ABCDEF
uint16_t强转uint8_t 同理。
2.uint32_t 取高位和取低位
//取低八位
uint32_t num1 = 0xABCDEF;
uint8_t num2;
num2 = (uint8_t)(num1 & 0xFF);
此时num2=0xEF。
//取高八位
uint16_t num1 = 0xABCDEF;
uint8_t num2;
num2 = (uint8_t)(num1 >> 8);
此时num2=0xCD.