비트 연산자는 피연산자를 32개의 비트(0과 1) 집합으로 취급합니다. 연산은 2진수 표현을 사용해 수행하지만 결과는 표준 JavaScript 숫자 값으로 반환합니다.
// Bit Operation
0 1 1 0 0 1 1 0 0 0 1 1 위에서 아래를 곱해 줌
+0 0 1 0 -0 0 1 1 *0 1 0 1
--------- --------- ---------
1 0 0 0 0 0 1 1 0 1 0 1
+0 1 0 1 0
-----------
1 1 1 1
직사각형을 만드는 데 필요한 4개의 점 중 3개의 좌표가 주어질 때, 나머지 한 점의 좌표를 구하시오.
작성한 코드)
const v = [[1, 4], [3, 4], [3, 10]];
function solution(v) {
let answer = [0, 0];
for (let position of v) {
answer[0] ^= position[0];
answer[1] ^= position[1];
}
return answer;
}
직사각형을 만들기 위해서는 기존에 주어진 좌푯값 중 2개 이상 중복되지 않은 숫자를 찾으면 된다. 비트 연산자 중 XOR을 사용할 경우, 같은 숫자끼리 XOR을 했을 때 결과는 0이 되고 0에 나머지 숫자 하나를 XOR 연산하면 결과는 나머지 숫자이므로 비트 연산을 이용하면 쉽게 결과를 알 수 있다. (예시: A XOR B XOR A = B
)
출처: YOUTUBE-엔지니어대한민국, MDN-비트 연산자