Menu
CoddyTech

NOT 和 OR 运算符

Coddy 位运算 课程的第 4 课,共 17 课。

非(~)运算符

这个运算符只需要一个操作数。它用于翻转数字的各个位。

x~x
01
10

下表展示了翻转位的含义。

二进制模式或数字也会进行相同的操作。下面是一个例子:

 

在上面的例子中,'x' 表示 (11)10 的二进制形式,对它使用非运算符后,我们得到 (4)10。在 C++ 中,这里的输出会有所不同,因为应用非运算后,结果会由于有符号二进制数而以二进制补码形式存储。[(Number)10 表示以 10 为基数的数值]

二进制或( | )运算符

按位或是一种二元运算符,作用于两个长度相同的位模式。如果位模式中对应位置的两个位都为 0,那么结果位模式中对应位置的位为 0,否则为 1。符号 '|' 表示或运算符。

下表展示了两个位的或运算。

xyx | y
000
011
101
111

我们用一个例子来进一步说明:

在上面的例子中,我们对 (11)10 和 (4)10 进行了或运算,结果为 (15)10。

用途:

int a = 0;
int b = 1;
>> a | b
OUTPUT: 1
challenge icon

挑战

简单

房间里有两个灯泡。'0' 表示灯关着,'1' 表示灯开着。给你两个数组,数组中的每个元素表示每个小时灯泡的开关状态。找出房间里没有灯光的小时数。

亲手试试

#include <iostream>
#include <vector>
using namespace std;

int hoursLightsOff(vector<int> bulb1, vector<int> bulb2) {
    // 在这里编写代码
}

位运算中的所有课

自己练习: C++ 在线编译器

检查进制转换: 进制转换器