我刚刚发现了按位(&,|,^,〜)运算符。我知道逻辑(&&,||)运算符已经有一段时间了,我对它有很多用途。
在网上退房后,我了解它们是如何工作的,但我还没有看到任何实际例子。
在比特级别上进行操作有什么意义?
提前感谢您的时间和精力
谦信
编辑:对不起,我的问题看起来还不够准确。我只是不习惯按位运算符,因为我没有必要在我的任何C ++项目中使用它们,而且我还没有找到它在哪里使用的示例。再次感谢
答案 0 :(得分:0)
通常,从硬件寄存器访问状态位或从无符号整数中提取位时,使用逐位算术。
搜索StackOverflow" c ++ bit twiddling example"。
编辑1:示例 - 读取UART状态
#define CHAR_RECEIVED (0x02)
uint32_t volatile * const UART_STATUS_REGISTER = (uint32_t volatile * )0xFFFFD000;
volatile uint32_t status = *UART_STATUS_REGISTER;
while ((status & CHAR_RECEIVED) == 0)
{
status = *UART_STATUS_REGISTER;
}