<< , >> 연산자 (Shift)
비트를 n 만큼 왼쪽 혹은 오른쪽으로 이동시킨다.
int n1 = 9; // (2진수 배열로 나열하면) 01001
int n2 = 11; // (2진수 배열로 나열하면) 01011
int n3 = n1 <<1 = 010010 = 18;
int n3 = n2 >> 2 = 00010 = 2;
int n3 = 28 << 2 = 1110000 = 112;
int n3 = 28 >> 2 = 00111 = 7;
+ 이때, shift 연산자는 곱셈, 나눗셈과 관련이 있다.
왼쪽으로 1칸 이동할때마다 정수의 값은 2배 로 커지고 (곱셈과 관련)
오른쪽으로 1칸 이동할때마다 정수의 값은 1/2배 가 된다. (나눗셈과 관련)
예제로 4/2 = 4>>1 과 동일한데,
CPU 입장에서는 곱셈,나눗셈보다 비트 연산이 부담이 적어 성능 향상에도 도움이 된다.
[출처] [c++] 비트 연산|작성자 YEON