位运算符和逻辑运算符

Bitwise and logical operators

本文关键字:逻辑运算符 运算符      更新时间:2023-10-16

我刚刚发现了按位(&,|,^,~)运算符。我知道逻辑(&&,||)运算符有一段时间了,我对它们的用法有很多想法。

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

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

提前感谢您的时间和努力

Kenshin

编辑:对不起,我的问题似乎不够精确。我只是不想实际使用位运算符,因为我在任何C++项目中都不必使用它们,而且我也无法找到使用它的示例。

再次感谢

通常,从硬件寄存器访问状态位或从无符号整数中提取位时使用逐位算术。

在StackOverflow中搜索"c++位旋转示例"。

编辑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;
  }