728x90
반응형
비트 연산자에는 AND, OR, XOR 뿐만 아니라 LEFT SHIFT, RIGHT SHIFT , NOT 연산자와 같이 많은 연산자들이 있다.
비트 연산자 중에서 AND 연산자와 OR 연산자, XOR 연산자, NOT 연산자를 사용하는 방법에 대해 정리해보았다.
AND 연산자 ( A & B )
AND 연산자는 둘 다 '참' 일 경우 1 을 반환한다.
예를 들어
0 & 1 = 0
1 & 1 = 1
#include <iostream>
#include <bitset>
using namespace std;
int main(){
int A = 5, B = 15;
cout << A << "의 2진수 : " << bitset<4>(A) << "\n";
cout << B << "의 2진수 : " << bitset<4>(B) << "\n";
cout << A << "와 " << B << "의 AND 연산 : " << (bitset<4>(A & B)) << "\n";
return 0;
}
5의 2진수 : 0101
15의 2진수 : 1111
5와 15의 AND 연산 : 0101
OR 연산자 ( A | B )
OR 연산자는 둘 중 하나라도 '참' 일 경우 1 을 반환한다.
예를 들어
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
#include <iostream>
#include <bitset>
using namespace std;
int main(){
int A = 5, B = 15;
cout << A << "의 2진수 : " << bitset<4>(A) << "\n";
cout << B << "의 2진수 : " << bitset<4>(B) << "\n";
cout << A << "와 " << B << "의 OR 연산 : " << (bitset<4>(A | B)) << "\n";
return 0;
}
5의 2진수 : 0101
15의 2진수 : 1111
5와 15의 OR 연산 : 1111
XOR 연산자 ( A ^ B )
XOR 연산자는 두 값이 '다를' 경우 1 을 반환한다.
예를 들어
0 ^ 1 = 1
1 ^ 0 = 1
#include <iostream>
#include <bitset>
using namespace std;
int main(){
int A = 5, B = 15;
cout << A << "의 2진수 : " << bitset<4>(A) << "\n";
cout << B << "의 2진수 : " << bitset<4>(B) << "\n";
cout << A << "와 " << B << "의 XOR 연산 : " << (bitset<4>(A ^ B)) << "\n";
return 0;
}
5의 2진수 : 0101
15의 2진수 : 1111
5와 15의 XOR 연산 : 1010
NOT 연산자 ( ~A )
AND 연산자는 둘 다 '참' 일 경우 1 을 반환한다.
예를 들어
~0 = 1
~1 = 0
#include <iostream>
#include <bitset>
using namespace std;
int main(){
int A = 5, B = 15;
cout << A << "의 2진수 : " << bitset<4>(A) << "\n";
cout << B << "의 2진수 : " << bitset<4>(B) << "\n";
cout << A << "의 NOT 연산 : " << (bitset<4>(~A))<< "\n";
cout << B << "의 NOT 연산 : " << (bitset<4>(~B))<< "\n";
return 0;
}
5의 2진수 : 0101
15의 2진수 : 1111
5의 NOT 연산 : 1010
15의 NOT 연산 : 0000
참고 사이트
https://ko.khanacademy.org/computing/computer-science/cryptography/ciphers/a/xor-bitwise-operation
728x90
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
vector<pair<type, type> > 람다 이용해서 정렬하기 (0) | 2019.09.01 |
---|---|
[C++] 표준 입력 함수 정리 (0) | 2019.08.15 |
C++ 문자를 2진수로 출력하기 (0) | 2019.08.15 |
[C++] 소수점 자릿수 출력하기 (0) | 2019.07.31 |
C++ vector 에서 erase 함수 사용할 때 주의할 점 (0) | 2019.07.26 |