Computer >> Máy Tính >  >> Lập trình >> C ++

Toán tử Bitwise trong C ++


Có 3 toán tử bitwise có sẵn trong c ++. Đây là bitwise AND (&), bitwise OR (|) và bitwise XOR (^).

Toán tử AND bit (&) so sánh từng bit của toán hạng đầu tiên với bit tương ứng của toán hạng thứ hai. Nếu cả hai bit đều là 1, thì bit kết quả tương ứng được đặt thành 1. Ngược lại, bit kết quả tương ứng được đặt thành 0. Cả hai toán hạng của toán tử AND bao gồm theo từng bit phải thuộc loại tích phâ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;
}

Đầu ra

Điều này cho kết quả -

0

Toán tử OR theo bit (|) so sánh từng bit của toán hạng đầu tiên với bit tương ứng của toán hạng thứ hai. Nếu một trong hai bit là 1, bit kết quả tương ứng được đặt thành 1. Ngược lại, bit kết quả tương ứng được đặt thành 0. Cả hai toán hạng cho toán tử OR bao gồm theo từng bit phải thuộc loại tích phâ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;
}

Đầu ra

Điều này cho kết quả -

ffff

Toán tử OR riêng theo bit (^) so sánh từng bit của toán hạng đầu tiên với bit tương ứng của toán hạng thứ hai. Nếu một bit là 0 và bit kia là 1, bit kết quả tương ứng được đặt thành 1. Ngược lại, bit kết quả tương ứng được đặt thành 0. Cả hai toán hạng cho toán tử OR loại trừ bit phải thuộc loại tích phân. Ví dụ,

Ví dụ

#include <iostream>  
using namespace std;  
int main() {  
   short a = 0x5555;      // pattern 0101 ...  
   unsigned short b = 0xFFFF;      // pattern 1111 ...  
   cout  << hex << ( a ^ b ) << endl;
}

Đầu ra

Điều này cho kết quả -

aaaa

Đại diện cho mẫu 1010 ...