【发布时间】:2014-02-14 18:28:03
【问题描述】:
我会写两行来设置,比如说,一些位。在这里,例如,我想将 uint16_t 值 x 的高 8 位设置为 y 的低 8 位。
uint16_t y = 0x0034;
uint16_t x = 0xFF12;
我想要x:
assert(x == 0x3412);
我倾向于写这两行:
x &= 0x00FF;
x |= (y << 8);
有没有不用宏写单行也能达到同样效果的方法?
【问题讨论】:
-
x = (x & 0xFF) | (y << 8);
标签: c bit-manipulation