JavaScript 비트 우측 시프트(>>) 연산자란?
비트 우측 시프트 연산자(>>)는 숫자를 2진수 비트 단위로 오른쪽 방향으로 이동시키는 연산자입니다. 지정한 횟수만큼 비트가 왼쪽에서 오른쪽으로 밀려나며, 이동 과정에서 가장 오른쪽에 있던 비트는 버려집니다.
특히 자바스크립트에서 >> 연산자는 부호 있는(signed) 시프트로 동작합니다. 즉, 음수를 시프트할 때 맨 앞의 부호 비트가 그대로 유지되므로, 음수 값은 여전히 음수로 계산됩니다.
동작 원리
예를 들어 -7 >> 1을 실행하면, -7의 2진수 표현이 오른쪽으로 1비트 이동하고 가장 오른쪽 비트는 삭제됩니다. 부호 비트가 유지되기 때문에 결과값은 -4가 됩니다. 일반적으로 x >> n은 x를 2의 n제곱으로 나눈 몫과 같은 효과를 냅니다.
예제 코드
아래 코드를 직접 실행해 보면서 자바스크립트 비트 우측 시프트 연산자의 동작을 확인할 수 있습니다.
<!DOCTYPE html>
<html>
<body>
<script>
document.write("Bitwise Right Shift Operator<br>");
document.write(-7>>1);
</script>
</body>
</html>실행 결과
Bitwise Right Shift Operator -4
위 예제에서 -7 >> 1의 결과로 -4가 출력됩니다. 이는 -7을 2로 나눈 후 소수점 아래를 버린 값과 동일하며, 부호 비트가 보존되었음을 보여줍니다.
정리
>>연산자는 비트를 오른쪽으로 이동시키고, 잘려나간 오른쪽 비트는 무시됩니다.- 부호 있는 시프트이므로 음수의 부호가 유지됩니다.
x >> n은 x ÷ 2ⁿ의 정수 몫과 같은 결과를 냅니다.