Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

풀이 보관함

비트 연산자 본문

etc.

비트 연산자

viin 2022. 8. 26. 14:52

<< , >> 연산자 (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