2014-10-28 124 views
-4

我刚发现按位(&,|,^,〜)运算符。我知道逻辑(& &,||)运营商一段时间,我有很多想法在那里使用。按位与逻辑运算符

在互联网上退房后,我已经了解他们是如何工作的,但我没有看到任何这些实际例子。

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

预先感谢您的时间和精力

谦信

编辑:对不起,这是我似乎还没有在我的问题不够精确。我只是不愿意使用位运算符,因为我没有在我的任何C++项目中使用它们,而且我也没有找到使用它的地方的示例。

再次感谢

+0

你必须不断努力去了解他们(至少逻辑的),因为他们在所有的编程语言真的很重要的,所以如果你不了解他们,那么你将永远不会成为程序员或计算机科学家。 – nbro 2014-10-28 21:08:06

+0

立即理解位运算符是什么并不重要,不像你正在处理位和字节,这可能不是这种情况。 – nbro 2014-10-28 21:10:42

回答

0

一般来说,从硬件寄存器或用于从一个无符号整数提取比特访问状态位时按位运算时使用。

搜索StackOverflow for“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; 
    }