자바스크립트 비트 연산자란?
비트 연산자(Bitwise Operator)는 숫자를 이진수(bit) 단위로 처리하는 연산자입니다. 대표적인 비트 연산자로는 AND, OR, XOR이 있으며, 아래에서 하나씩 자세히 살펴보겠습니다.
1. AND 연산자 (&)
비트 AND 연산자는 두 비트가 모두 1일 때만 1을 반환하고, 그 외의 경우에는 0을 반환합니다.
예제 코드
<html>
<body>
<p id="and"></p>
<script>
document.getElementById("and").innerHTML = 13 & 1;
</script>
</body>
</html>
실행 결과
1
설명: 13을 이진수로 표현하면 1101이고, 1은 0001입니다. 두 수를 비교하면 첫 번째 자리(최하위 비트)에서만 공통적으로 1이 나타나므로, 결과값은 0001, 즉 십진수 1이 됩니다.
2. OR 연산자 (|)
비트 OR 연산자는 두 비트 중 하나라도 1이면 1을 반환합니다.
예제 코드
<html>
<body>
<p id="or"></p>
<script>
document.getElementById("or").innerHTML = 5 | 1;
</script>
</body>
</html>
실행 결과
5
설명: 5의 이진수 표현은 0101이고, 1은 0001입니다. 각 자리를 비교했을 때 하나라도 1이 있는 자리는 모두 1이 되므로, 결과값은 0101, 즉 십진수 5입니다.
참고: 논리 연산자 ||(둘 이상의 조건 평가)와 혼동하지 않도록 주의하세요. 비트 OR는 파이프 기호 하나(|)를 사용합니다.
3. XOR 연산자 (^)
비트 XOR 연산자는 두 비트가 서로 다를 때 1을, 같으면 0을 반환합니다.
예제 코드
<html>
<body>
<p id="xor"></p>
<script>
document.getElementById("xor").innerHTML = 5 ^ 1;
</script>
</body>
</html>
실행 결과
4
설명: 5의 이진수 표현은 0101이고, 1은 0001입니다. 세 번째 자리에서 두 비트가 서로 다르므로 해당 자리만 1이 되고, 결과값은 0100, 즉 십진수 4입니다.
마무리
이 외에도 자바스크립트에는 비트를 반전시키는 NOT(~), 비트를 좌우로 밀어내는 시프트 연산자(<<, >>) 등이 있습니다. 비트 연산자는 성능 최적화, 플래그(flag) 처리, 간단한 암호화 로직 등에서 유용하게 활용되므로, 이진수 변환 원리와 함께 익혀두면 큰 도움이 됩니다.