공부/알고리즘
비트연산
티오비
2017. 6. 27. 16:43
비트 연산
A | B | ~A | A&B | A|B | A^B |
---|---|---|---|---|---|
0 | 0 | 1 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 0 | 1 | 1 |
1 | 1 | 0 | 1 | 1 | 0 |
※ 어떤 수가 홀수인지 판별하는 if(N % 2 == 1) 은 if (N & 1)로 줄일 수 있다.
Not
not 연산의 경우에는 자료형에 따라 결과가 달라진다. unsigned나 signed에 따라 보여지는 값도 다르다.
num = 64 2진수 01000000
~ A = 10111111 8비트
~ A = 11111111 11111111 11111111 10111111 32비트 자료형
Shift left(<<)
A << B : A를 왼쪽으로 B 비트만큼 민다. A * 2^B 와 같다
1 << 1 = 2
1 << 2 = 4
1 << 4 = 16
3 << 3 = 24
5 << 10 = 5120
Shift right(>>)
A >> B : A를 오른쪽으로 B비트만큼 민다. A >> B A / 2^B
1 >> 0 = 1
1 >> 1 = 0
10 >> 1 = 5
10 >> 2 = 2
10 >> 3 = 1
1024 >> 10 = 1