【发布时间】:2019-05-21 19:36:11
【问题描述】:
要提取无符号 32 位整数的高位和低位字并将每个字存储在单独的 uint16_t 变量中,我执行以下操作(nbr 是无符号 32 位整数):
uint16_t lower_word = (uint16_t) nbr & 0x0000FFFF; // mask desired word
uint16_t upper_word = (uint16_t) ((nbr & 0xFFFF0000) >> 16); // right-shift after masking
是否不需要显式转换为 uint16_t?如果有任何其他更有效的方法,您是否建议获得所需的结果而不是这种方法?
【问题讨论】: