비트 XOR 할당 연산자(^=)는 두 피연산자의 이진 표현을 사용하고 이에 대해 비트 XOR 연산을 수행하고 결과를 변수에 할당한다.
컴퓨터의 연산은 숫자 0과 1로만 이루어져 있고 비트 연산은 피연산자를 2진수로 인식해서 처리한다.
비트 XOR의 연산도 2진수로 진행이 된다.
아래의 2진수는 8bit 기준으로 나타낸 것이다.
※ 8bit
- 비트는 한 덩어리(마디)의 조각을 의미하고 8bit는 한 마디를 8조각으로 나누었다는 의미이다.
- 서구권에서는 1개의 문자를 처리하는데 8bit를 사용한다. 그래서 정보처리의 기본단위로 8bit를 사용한다.
10진수 | 2진수(8bit) |
0 | 0000 0000 |
1 | 0000 0001 |
2 | 0000 0010 |
3 | 0000 0011 |
4 | 0000 0100 |
5 | 0000 0101 |
6 | 0000 0110 |
let a = 5;
a ^= 3;
console.log(a); // 6
a에 5가 할당된 상태에서
a ^= 3 은
a = 5 ^ 3 이고
XOR 연산을 위해 숫자를 2진수로 변환해서 XOR 연산을 한다.
그러면
a = 0000 0101 ^ 0000 0011 이고
각 자리 수마다 ^ 연산을 수행하면
a = 0000 0110 // 6 이 된다.