왼쪽 시프트 연산자(<<)는 첫 번째 피연산자의 모든 비트를 두 번째 피연산자가 지정한 자릿수만큼 왼쪽으로 이동시키는 비트 연산자입니다. 이동 후 새롭게 생긴 오른쪽 빈자리는 모두 0으로 채워집니다.
왼쪽 시프트 연산자의 핵심 특징
왼쪽 시프트는 사실상 2의 거듭제곱 곱셈과 같은 결과를 냅니다.
- 1비트 왼쪽 이동 → 값이 2배가 됨
- 2비트 왼쪽 이동 → 값이 4배가 됨
- 3비트 왼쪽 이동 → 값이 8배가 됨
예를 들어 숫자 2(2진수 10)를 3비트 왼쪽으로 이동하면 2진수 10000, 즉 십진수 16이 됩니다. 이는 2 × 2³ = 16과 동일한 계산입니다.
예제 코드
아래 코드를 실행하면 비트 왼쪽 시프트 연산자가 실제로 어떻게 동작하는지 확인할 수 있습니다.
<html>
<body>
<script>
var a = 2; // 2진수 표현: 10
var b = 3; // 2진수 표현: 11
document.write("(a << b) => ");
result = (a << b);
document.write(result);
</script>
</body>
</html>실행 결과
위 예제에서 변수 a의 값 2를 3비트 왼쪽으로 이동하므로, 결과는 16이 출력됩니다. 즉, (a << b)는 2 × 8 = 16과 같은 의미입니다.
정리
왼쪽 시프트 연산자(<<)는 비트를 왼쪽으로 밀어내고 빈자리를 0으로 채우며, 수학적으로는 2의 n제곱을 곱하는 것과 동일합니다. 곱셈 연산보다 처리 속도가 빠른 경우가 많아 성능 최적화가 필요한 코드에서 유용하게 활용됩니다.