자바스크립트 비트 연산자(Bitwise Operators)

비트 연산자(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

위에서 설명한 자바스크립트 비트 연산자들은 정수 연산에 유용하게 사용될 수 있습니다. 비트 연산자들을 적절히 활용하여 원하는 연산을 수행해보세요!