按位和逻辑运算符

时间:2014-10-28 21:05:42

标签: c++ bitwise-operators

我刚刚发现了按位(&,|,^,〜)运算符。我知道逻辑(&&,||)运算符已经有一段时间了,我对它有很多用途。

在网上退房后,我了解它们是如何工作的,但我还没有看到任何实际例子。

在比特级别上进行操作有什么意义?

提前感谢您的时间和精力

谦信

编辑:对不起,我的问题看起来还不够准确。我只是不习惯按位运算符,因为我没有必要在我的任何C ++项目中使用它们,而且我还没有找到它在哪里使用的示例。

再次感谢

1 个答案:

答案 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;
  }