JavaScript의 비트 OR(Bitwise OR, |) 연산자는 두 숫자를 이진수 비트 단위로 비교하는 연산자입니다. 비교하는 두 비트 중 하나라도 1이면 결과는 1이 되고, 두 비트가 모두 0일 때만 0을 반환합니다.
비트 OR 연산자의 동작 원리
비트 OR 연산은 다음과 같은 규칙으로 각 비트를 처리합니다.
- 0 | 0 → 0
- 0 | 1 → 1
- 1 | 0 → 1
- 1 | 1 → 1
예제 코드
아래 예제를 실행하면 JavaScript에서 비트 OR 연산자가 어떻게 작동하는지 직접 확인할 수 있습니다.
<!DOCTYPE html>
<html>
<body>
<script>
document.write("Bitwise OR Operator<br>");
// 7 = 00000000000000000000000000000111
// 1 = 00000000000000000000000000000001
document.write(7 | 1);
</script>
</body>
</html>결과 분석
위 예제에서 숫자 7은 이진수로 111, 숫자 1은 이진수로 001입니다. 두 값을 비트 단위로 OR 연산하면 다음과 같습니다.
00000111 (7) | 00000001 (1) ----------- 00000111 (7)
따라서 실행 결과는 7이 출력됩니다. 첫 번째 피연산자의 모든 비트가 이미 1이므로, OR 연산 후에도 값이 그대로 유지됩니다.
활용 예시
비트 OR 연산자는 특정 비트를 1로 설정(플래그 설정)할 때 유용하게 사용됩니다. 예를 들어 권한 관리나 옵션 조합을 표현할 때 각 비트를 독립적인 상태 값으로 활용할 수 있습니다.
const READ = 4; // 100 const WRITE = 2; // 010 const EXECUTE = 1; // 001 let permission = READ | WRITE; // 110 → 읽기 + 쓰기 권한 console.log(permission); // 6
이처럼 비트 OR 연산자는 여러 상태를 하나의 정수로 압축해 관리할 수 있어, 성능과 메모리 측면에서 효율적인 코드를 작성하는 데 도움이 됩니다.