비트 연산자(Bitwise Operators)는 자바스크립트에서 비트 수준(bit-level)에서 연산을 수행하는 데 사용됩니다. 이 연산자들은 정수를 2진수로 나타내고, 각 비트(bit)에 대해 특정한 연산을 수행합니다. 자바스크립트에서는 다음과 같은 비트 연산자들이 있습니다:
1. AND 연산자 (&)
AND 연산자는 두 개의 피연산자가 모두 1일 경우에만 결과값을 1로 반환하는 연산을 수행합니다. 예를 들어, 2진수로 10과 14를 AND 연산하면 다음과 같습니다:
let a = 10; // 1010
let b = 14; // 1110
let result = a & b; // 1010 & 1110 = 1010
console.log(result); // Output: 10
2. OR 연산자 (|)
OR 연산자는 두 개의 피연산자 중에서 하나 이상이 1일 경우 결과값을 1로 반환합니다. 기호 |
를 사용하여 OR 연산을 할 수 있습니다. 아래 예제를 확인해보세요:
let a = 10; // 1010
let b = 14; // 1110
let result = a | b; // 1010 | 1110 = 1110
console.log(result); // Output: 14
3. XOR 연산자 (^)
XOR 연산자는 두 개의 피연산자 중에서 하나만 1일 경우 결과값을 1로 반환합니다. 비트가 서로 다른 경우에만 1을 반환하기 때문에, 배타적 논리합이라고도 불립니다. 아래 예제를 통해 XOR 연산자를 알아보세요:
let a = 10; // 1010
let b = 14; // 1110
let result = a ^ b; // 1010 ^ 1110 = 0100
console.log(result); // Output: 4
4. NOT 연산자 (~)
NOT 연산자는 피연산자의 비트를 반대로 뒤집습니다. 0인 비트는 1로, 1인 비트는 0으로 변환됩니다. NOT 연산자는 형태로 사용되며, 아래 예제를 통해 확인해보세요:
let a = 10; // 1010
let result = ~a; // ~1010 = 0101 (2의 보수)
console.log(result); // Output: -11
5. Shift 연산자 («, », »>)
Shift 연산자는 비트를 좌측이나 우측으로 이동시키는 연산을 수행합니다. 이 연산자들은 비트를 이동하기 위해 사용되는 숫자만큼 비트를 이동시킵니다.
<<
: 좌측으로 비트 이동>>
: 우측으로 비트 이동 (부호 보존)>>>
: 우측으로 비트 이동 (부호 무시)
아래 예제를 통해 Shift 연산자의 동작을 확인해보세요:
let a = 10; // 1010
let result1 = a << 1; // 1010 << 1 = 10100 (20)
let result2 = a >> 1; // 1010 >> 1 = 101 (5)
let result3 = a >>> 1; // 1010 >>> 1 = 101 (5)
console.log(result1); // Output: 20
console.log(result2); // Output: 5
console.log(result3); // Output: 5
위에서 설명한 자바스크립트 비트 연산자들은 정수 연산에 유용하게 사용될 수 있습니다. 비트 연산자들을 적절히 활용하여 원하는 연산을 수행해보세요!