This page is also available in 3 other languages

>>

[Bitwise Operators]

설명

비트 오른쪽으로 옮김 연산자 >> 는 왼쪽 피연산자의 비트를 오른쪽 피연산자에 의해 지정된 위치 수 만큼 오른쪽으로 옮긴다.

문법

변수 >> 비트 수;

매개변수

변수: 허용되는 자료형: byte, int, long
비트 수: 숫자 < = 32. 허용되는 자료형: int

예제 코드

int a = 40;     // 이진수: 0000000000101000
int b = a >> 3; // 이진수: 0000000000000101, 즉 십진수 5

주의와 경고

x를 y비트 오른쪽으로 옮기면(x >> y), 그리고 최상위 비트가 1이면, 그 결과는 x의 정확한 자료형에 달려있다. x가 int 형이면, 최상위 비트는 부호 비트, x가 음인지 아닌지 결정하는데, 위에서 논한 바와 같다. 이경우, 부호 비트는 낮은 비트들에 복사되는데, 이는 비공식적인 역사적 까닭 때문 :

int x = -16;  // binary: 1111111111110000
int y = 3;
int result = x >> y;  // binary: 1111111111111110

부호 확장이라고 하는이 동작은, 종종 원하는 동작이 아니다. 대신, 왼쪽에서 0을 옮기는 게 좋다. unsigned int 표현식에 대해서는 오른쪽으로 옮김 규칙이 다르므로 형 변환을 사용하여 왼쪽으로부터 복사되는 것을 억제 할 수 있다:

int x = -16;  // binary: 1111111111110000
int y = 3;
int result = (unsigned int)x >> y;  // binary: 0001111111111110

부호 확장을 피하는 주의를 하면, 오른쪽으로 옮김 연산자 >> 를 2의 거듭제곱으로 나누는 방법으로 쓸 수 있다. 예를 들어:

int x = 1000;
int y = x >> 3; // 정수 나눗셈 1000 나누기 8, 결과 y = 125.

더보기