Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 비트 연산자


C++에는 3가지 비트 연산자가 있습니다. 이들은 비트 AND(&), 비트 OR(|) 및 비트 XOR(^)입니다.

비트 AND 연산자(&)는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다. 두 비트가 모두 1이면 해당 결과 비트가 1로 설정됩니다. 그렇지 않으면 해당 결과 비트가 0으로 설정됩니다. 비트 포함 AND 연산자에 대한 두 피연산자는 정수 유형이어야 합니다. 예를 들어,

예시

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

출력

이것은 출력을 제공합니다 -

0

비트 OR 연산자(|)는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다. 비트 중 하나가 1이면 해당 결과 비트가 1로 설정됩니다. 그렇지 않으면 해당 결과 비트가 0으로 설정됩니다. 비트 포함 OR 연산자에 대한 두 피연산자는 정수 유형이어야 합니다. 예를 들어,

예시

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

출력

이것은 출력을 제공합니다 -

ffff

비트별 배타적 OR 연산자(^)는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다. 한 비트가 0이고 다른 비트가 1이면 해당 결과 비트가 1로 설정됩니다. 그렇지 않으면 해당 결과 비트가 0으로 설정됩니다. 비트 배타적 OR 연산자에 대한 두 피연산자는 정수 유형이어야 합니다. 예를 들어,

예시

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

출력

이것은 출력을 제공합니다 -

aaaa

이는 패턴 1010을 나타냅니다...