>> 과 << 의 사용
">>" 연산자
- 오른쪽 shift연산자로 데이터를 오른쪽으로 1씩 이동시킨다.
- 숫자 연산에 사용될 경우 2의 n승을 나누는 효과가 발생.
- 양수데이터인 경우 왼쪽에는 0이 채워짐. 음수인 경우 1이 채워짐
"<<" 연산자
- 왼쪽 shift연산자로 데이터를 왼쪽으로 1씩 이동시킨다.
- 숫자 연산에 사용될 경우 2의 n승을 곱하는 효과가 발생.
- 양수데이터인 경우 오른쪽에는 0이 채워짐. 음수인 경우에도 0이 채워짐.
코드 예
int a = 7;
cout<<(a<<2)<<endl;
cout>>(a>>2)<<endl;
결과
28
1
해석
첫번째 줄에는 7*(2^2)의 결과인 28이 계산되어 출력됨
두번째 줄에는 7/(2^2)의 결과인 1이 계산되어 출력됨.
~의 사용
"~"은 각 비트를 not연산한다.
코드 예
int a = 7;
cout<<(~a)<<endl;
결과
-8
해석
- 7의 32비트(=4바이트) 표현
0000 0000 0000 0111
- 각 비트를 not연산한 결과
1111 1111 1111 1000
- 2의 보수표현으로 10진수 계산
-8