비트마스킹은
- 컴퓨터 과학에서 비트 연산자를 사용하여 특정 위치의 비트를 설정하거나 조작하는 기술이다
- 데이터를 압축하는데에 유용하며 효율적으로 데이터를 다룰 수 있다.
비트마스크의 주요 연산
비트 설정
OR(|) 연산자를 사용하여 특정 위치의 비트를 1로 설정한다.
let num = 5; // 5의 이진 표현은 '101'
let mask = 1 << 2; // 비트를 설정할 위치를 나타내는 마스크 (2번째 비트)
num = num | mask; // 5의 2번째 비트를 1로 설정하여 num은 이제 '111' (7)
비트 확인
AND(&) 연산자를 사용하여 특정 위치의 비트를 확인한다
let num = 5; // 5의 이진 표현은 '101'
let mask = 1 << 2; // 비트를 확인할 위치를 나타내는 마스크 (2번째 비트)
let bit = (num & mask) !== 0; // 2번째 비트가 1인지 확인 (결과는 true)
비트 지우기
AND(&)와 NOT(~) 연산자를 사용하여 특정 비트를 0으로 지운다
let num = 5; // 5의 이진 표현은 '101'
let mask = ~(1 << 1); // 비트를 지울 위치를 나타내는 마스크 (1번째 비트)
num = num & mask; // 5의 1번째 비트를 0으로 지워 num은 이제 '100' (4)
비트 반전
XOR(^) 연산자를 사용하여 특정 위치의 비트를 반전시킨다.
let num = 5; // 5의 이진 표현은 '101'
let mask = 1 << 0; // 비트를 반전할 위치를 나타내는 마스크 (0번째 비트)
num = num ^ mask; // 5의 0번째 비트를 반전하여 num은 이제 '100' (4)
XOR
비트 연산자 중에서 같은 자릿수의 비트가 서로 다를 경우 1, 같을 경우 0을 출력하는 연산자다.
console.log(3 ^ 5); // 011 ^ 101 => 110 => 6
'알고리즘' 카테고리의 다른 글
롤케이크 자르기 (0) | 2023.12.07 |
---|---|
[프로그래머스 LV2] 마법의 엘리베이터 JS (0) | 2023.12.07 |
[프로그래머스] 숫자 변환하기 (0) | 2023.12.06 |
[프로그래머스] 코딩테스트 공부 (0) | 2023.11.25 |
우선순위 큐, 힙 (0) | 2023.11.22 |