Toán tử NOT và OR
Bài học 4 trên 17 trong khóa học Thao tác bit của Coddy.
Toán tử NOT ( ~ )
Toán tử này chỉ cần một toán hạng. Nó dùng để đảo các bit của một số.
| x | ~x |
| 0 | 1 |
| 1 | 0 |
Bảng trên cho thấy việc đảo bit có nghĩa là gì.
Ta cũng làm tương tự với các mẫu nhị phân hoặc số. Dưới đây là một ví dụ:
Trong ví dụ trên, 'x' biểu diễn dạng nhị phân của (11)10. Khi dùng toán tử not với nó, ta nhận được (4)10. Trong C++, kết quả sẽ khác vì sau khi thực hiện phép toán not, kết quả được lưu ở dạng bù hai do số nhị phân có dấu. [(Number)10 biểu thị giá trị số ở cơ số 10)]
Toán tử OR nhị phân ( | )
OR theo bit là toán tử nhị phân hoạt động trên hai mẫu bit có độ dài bằng nhau. Nếu cả hai bit ở vị trí được so sánh đều là 0, bit ở vị trí tương ứng trong mẫu bit kết quả là 0, nếu không thì là 1. Ký hiệu '|' biểu thị toán tử OR.
Bảng dưới đây cho thấy phép toán OR trên hai bit.
| x | y | x | y |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Ví dụ sau sẽ giúp bạn hiểu rõ hơn:

Trong ví dụ trên, ta thực hiện phép toán OR trên (11)10 và (4)10 , kết quả là (15)10.
Cách dùng:
int a = 0;
int b = 1;
>> a | b
OUTPUT: 1Thử thách
DễCó hai bóng đèn trong một căn phòng. '0' nghĩa là đèn tắt và '1' nghĩa là đèn bật. Bạn được cho hai mảng, trong đó mỗi phần tử cho biết trạng thái bật/tắt của các bóng đèn trong mỗi giờ. Hãy tìm số giờ căn phòng không có ánh sáng.
Tự làm thử
#include <iostream>
#include <vector>
using namespace std;
int hoursLightsOff(vector<int> bulb1, vector<int> bulb2) {
// Viết code ở đây
}Tất cả bài học trong Thao tác bit
1Giới thiệu và kiến thức cơ bản
Thao tác bit là gì?Tại sao cần thao tác bit?Số nhị phân và số thập phânToán tử NOT và ORToán tử ANDToán tử XORToán tử dịch phải và dịch tráiTóm tắt các toán tử bitTự luyện tập: Trình biên dịch C++ online
Kiểm tra một phép chuyển đổi: Công cụ chuyển đổi hệ cơ số