NOT 和 OR 运算符
Coddy 位运算 课程的第 4 课,共 17 课。
非(~)运算符
这个运算符只需要一个操作数。它用于翻转数字的各个位。
| x | ~x |
| 0 | 1 |
| 1 | 0 |
下表展示了翻转位的含义。
二进制模式或数字也会进行相同的操作。下面是一个例子:
在上面的例子中,'x' 表示 (11)10 的二进制形式,对它使用非运算符后,我们得到 (4)10。在 C++ 中,这里的输出会有所不同,因为应用非运算后,结果会由于有符号二进制数而以二进制补码形式存储。[(Number)10 表示以 10 为基数的数值]
二进制或( | )运算符
按位或是一种二元运算符,作用于两个长度相同的位模式。如果位模式中对应位置的两个位都为 0,那么结果位模式中对应位置的位为 0,否则为 1。符号 '|' 表示或运算符。
下表展示了两个位的或运算。
| x | y | x | y |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
我们用一个例子来进一步说明:

在上面的例子中,我们对 (11)10 和 (4)10 进行了或运算,结果为 (15)10。
用途:
int a = 0;
int b = 1;
>> a | b
OUTPUT: 1挑战
简单房间里有两个灯泡。'0' 表示灯关着,'1' 表示灯开着。给你两个数组,数组中的每个元素表示每个小时灯泡的开关状态。找出房间里没有灯光的小时数。
亲手试试
#include <iostream>
#include <vector>
using namespace std;
int hoursLightsOff(vector<int> bulb1, vector<int> bulb2) {
// 在这里编写代码
}位运算中的所有课
自己练习: C++ 在线编译器
检查进制转换: 进制转换器