以下是位掩码常用操作的详细解释,并附上每种操作的示例代码及注释:
-
设置位(Set bits):
使用位或操作(OR,|
)来设置一个或多个特定位。此操作将指定位置1。uint8_t register = 0b00001100; // 初始寄存器值:00001100 uint8_t mask = 0b00000010; // 掩码:00000010 register |= mask; // 将寄存器的第1位置1 // 结果:register = 0b00001110
-
清除位(Clear bits):
使用位与操作(AND,&
)和掩码的补码(NOT,~
)来清除特定位。此操作将指定位清零。uint8_t register = 0b00001110; // 初始寄存器值:00001110 uint8_t mask = 0b00000010; // 掩码:00000010 register &= ~mask; // 将寄存器的第1位清0 // 结果:register = 0b00001100
-
检查位(Check bits):
使用位与操作(AND,&
)来检查特定位的状态。此操作用于判断特定位是否为1。uint8_t register = 0b00001100; // 初始寄存器值:00001100 uint8_t mask = 0b00000100; // 掩码:00000100 if ((register<