반응형
1. 비트단위 연산자 (Bitwise Operators)
연산자 종류
<< (left shift), >> (right shift)
~(Bitwise NOT), &(Bitwise AND), |(Bitwise OR), ^(Bitwise XOR)
// XOR 연산자는 없지만 Bitwise XOR 연산자는 있다.
- <<, >> (left shift, right shift)


숫자를 이진수로 바꿔서 출력해주는 bitset library를 사용하면 비트의 변화를 쉽게 확인할 수 있다.
std::bitset<표현할 비트개수>(표현할 숫자(변수))
비트와이즈 오퍼레이터를 사용할 때는 일반적으로 unsigned를 사용한다.
signed일 경우 맨앞 비트를 부호비트로 사용하기 때문에 복잡해지는 이유이다.
출력결과 left shift를 할때 숫자의 변화에 규칙성이 있었다 .
처음 3이었던 숫자가 left shift를 한번하니까 3 * 2^1, 두번하니까 3 * 2^2, ..
어떤 숫자를 n번shift했다면 2^n 만큼 곱해진 결과가 나오는 규칙이다.
즉, 어떤 unsigned int에 2의 n제곱을 곱하고 싶다면,
계산량이 많을때 shift operator를 통하여 훨씬 빠르게 구할 수 있다.
right shift는 left shift를 반대로 생각해보면 끝이다.
1번 shift했다면 2로 나눈값이 나올것이고, 2번 shift했다면 2^2로 나눈 값이 나올 것으로 쉽게 예상할 수 있다.
- ~ (Bitwise NOT)


0이 1로, 1이 0으로 반전시키는 오퍼레이터.
- &, |, ^, (Bitwise AND, OR, XOR)


* 이진수를 입력할때엔 비트앞에 0b를 붙이면 된다.
AND는 둘다 1이어야 1, OR는 둘중 하나만 1이어도 1, XOR은 둘중 하나만 1일때만 1이 된다.
반응형
'C++' 카테고리의 다른 글
4-1. C++ 전역변수, 정적변수, 내부연결, 외부연결 (1) | 2024.02.02 |
---|---|
3-3. C++ 비트 플래그, 비트 마스크 (1) | 2024.01.30 |
3-1. C++ 연산자(콤마 연산자, 삼항 연산자), 이진법 (0) | 2024.01.29 |
2-2. 오버플로우, 부동소수점 (1) | 2024.01.26 |
2-1. C++ 변수와 기본 자료형 (1) | 2024.01.26 |