[JS] 비트마스크 (BitMask)

이진규·2024년 4월 25일
post-thumbnail

❗️ 비트마스크 (BitMask)

  • 0 또는 1로 표현되는 이진수 연산 방식을 이용하는 기법
  • 빠른 수행 시간과 간결한 코드, 적은 메모리 사용량을 위해 사용

❗️ 비트마스크 연산

  • JS에서 비트마스크는 피연산자를 부호가 있는 32비트 정수 로 변환
  • 연산 종료 후 결과는 64비트 JS숫자 로 다시 변환
  • 비트 연산자의 우선 순위는 비교 연산자보다 낮음

1. AND 논리 연산자 (&) : 모두 1이면 1을 반환

const a = 9; // 1001
const b = 11; // 1011
console.log(a&b); // 1001

2. OR 논리 연산자 (|) : 하나라도 1이면 1을 반환

const a = 9; // 1001
const b = 11; // 1011
console.log(a|b); // 1011

3. XOR 논리 연산자 (^) : 같으면 0을, 다르면 1을 반환

const a = 9; // 1001
const b = 11; // 1011
console.log(a&b); // 0010

4. NOT 논리 연산자 (~) : 비트의 값을 반전시킴

const a = 9; // 1001
console.log(~a); // 0110

5. SHIFT 논리 연산자 (>>,<<)
지정한 수 만큼 비트를 이동 (이동한 비트에 따라 2의 제곱만큼 곱해짐)

const a = 3; // 011
const b = 2;
console.log(a<<b) // 01100 -> 12

❗️ 비트마스크의 이용

profile
웹 개발자

0개의 댓글