비트연산자

juyoung·2021년 9월 18일
0

>> 과 << 의 사용

">>" 연산자

  • 오른쪽 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

해석

  1. 7의 32비트(=4바이트) 표현
    0000 0000 0000 0111
  2. 각 비트를 not연산한 결과
    1111 1111 1111 1000
  3. 2의 보수표현으로 10진수 계산
    -8

0개의 댓글