Skip to content

C++:BitwiseOperators

Shift Operators

비트 시프트 연산자는 >>의 비트를 오른쪽으로 이동하는 오른쪽 시프트 연산자(shift_expression)와 <<의 비트를 왼쪽으로 이동하는 왼쪽 시프트 연산자(shift_expression)입니다.

다음은 C++ ISO 사양(INCITS/ISO/IEC 14882-2011[2012]), 단원 5.8.2 및 5.8.3의 시프트 연산자에 대한 설명입니다.

E1 << E2의 값은 E1 왼쪽 이동된 E2 비트 위치입니다. 비워진 비트는 0으로 채워집니다. E1이 부호 없는 형식이면 결과의 값은 E1 × 2^E2이고 줄어든 나머지는 결과 형식에 나타낼 수 있는 최대 값보다 1이 큽니다. 그렇지 않으면 E1이 부호 있는 형식이고 음수가 아닌 값이고 E1 × 2^E2가 해당 부호 없는 형식의 결과 형식에 나타낼 수 있는 경우 결과 형식으로 변환된 그 값은 결과 값입니다. 그렇지 않으면 동작이 정의되지 않습니다.

E1 >> E2의 값은 E1 오른쪽 이동된 E2 비트 위치입니다. E1이 부호 없는 형식이거나 E1이 부호 있는 형식이고 음수가 아닌 값인 경우 결과의 값은 E1/2^E2 몫의 정수 부분입니다. E1이 부호 있는 형식이고 음수인 경우 결과 값은 구현 시 정의됩니다.

See also