[C++] C++ &(비트연산자) 설명 및 예시
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
int main()
{
auto answer = 5 & 1;
if(answer) {
}
return 0;
}
c++의 int형의 기본값을 4byte 2진수로 표현 시 아래 처럼 표현 가능(읽는 방향은 오른쪽에서 왼쪽으로 ←) 1byte = 8bit, int형은 4byte 즉 32bit
1
0000 0000, 0000 0000, 0000 0000, 0000 0101
위의 코드 설명(int형 4byte 변수)
1
2
0000 0000 0000 0000 0000 0000 0000 0101 // 5
0000 0000 0000 0000 0000 0000 0000 0001 // 1
두 값을 &(AND)연산 하면
1
0000 0000 0000 0000 0000 0000 0000 0001
해당 코드로 얻을 수 있는 것은 &연산을 통해서 짝수 홀수를 쉽게 판별이 가능하다는 것 &1 을 했을때 1이 나오면 홀수, 0이 나오면 짝수 이유는 복잡할거 같은데 되게 단순함 2진수에서 홀수가 나오기 위해서는 무조건 첫번째 bit는 1이어야한다. 모든 홀수는 2진수로 표현시 첫번째 bit가 1이고, 모든 짝수는 첫번째 bit가 0이다. 그래서 &1을 했을때 홀수&1 = 1(0001)이고 짝수&1은 0(0000)이다.
Leave a comment