考虑unsigned int a;C中的变量.
现在说我想将此变量中的任何第i位设置为"1".
请注意,变量有一些值.所以a=(1<<i)不行.
a=a+(1<<i)会工作,但我正在寻找最快的方式.什么?
一些有用的位操作宏
#define BIT_MASK(bit) (1 << (bit))
#define SET_BIT(value,bit) ((value) |= BIT_MASK(bit))
#define CLEAR_BIT(value,bit) ((value) &= ~BIT_MASK(bit))
#define TEST_BIT(value,bit) (((value) & BIT_MASK(bit)) ? 1 : 0)
Run Code Online (Sandbox Code Playgroud)