Có 3 toán tử bitwise trong C++: bitwise AND (&), bitwise OR (|), bitwise XOR (^).
Toán tử bitwise AND (&) so sánh từng bit của toán hạng 1 với bit tương ứng của toán hạng 2. Nếu cả hai bit đều 1, bit kết quả là 1. Ngược lại, bit kết quả là 0. Cả hai toán hạng phải là kiểu nguyên. Ví dụ:
Ví dụ
#include <iostream>
using namespace std;
int main() {
unsigned short a = 0x5555; // pattern 0101...
unsigned short b = 0xAAAA; // pattern 1010...
cout << hex << (a & b) << endl;
}
Kết quả
0
Toán tử bitwise OR (|) so sánh từng bit. Nếu một trong hai bit là 1, bit kết quả là 1. Ngược lại là 0. Cả hai toán hạng phải kiểu nguyên. Ví dụ:
Ví dụ
#include <iostream>
using namespace std;
int main() {
unsigned short a = 0x5555; // 0101...
unsigned short b = 0xAAAA; // 1010...
cout << hex << (a | b) << endl;
}
Kết quả
ffff
Toán tử bitwise XOR (^) so sánh từng bit. Nếu một bit 0 và bit kia 1, bit kết quả là 1. Ngược lại là 0. Cả hai toán hạng phải kiểu nguyên. Ví dụ:
Ví dụ
#include <iostream>
using namespace std;
int main() {
short a = 0x5555; // 0101...
unsigned short b = 0xFFFF; // 1111...
cout << hex << (a ^ b) << endl;
}
Kết quả
aaaa
Đại diện pattern 1010...