비트별 XOR 대입 연산자(^=)란 무엇인가?
비트별 XOR 대입 연산자(^=)는 왼쪽 피연산자와 오른쪽 피연산자에 대해 XOR(배타적 논리합) 연산을 수행한 뒤, 그 결과를 왼쪽 피연산자에 다시 할당하는 복합 대입 연산자입니다.
즉, a ^= b는 a = a ^ b와 동일하게 동작하며, 코드를 더 간결하게 작성할 수 있도록 도와줍니다.
XOR 연산의 기본 원리
XOR은 두 비트를 비교하여 서로 다르면 1, 같으면 0을 반환합니다.
- 0 ^ 0 = 0
- 0 ^ 1 = 1
- 1 ^ 0 = 1
- 1 ^ 1 = 0
예제
다음 코드를 실행하면 비트별 XOR 대입 연산자가 실제로 어떻게 동작하는지 확인할 수 있습니다.
<html>
<body>
<script>
var a = 2; // 2진수 표현: 10
var b = 3; // 2진수 표현: 11
document.write("(a ^= b) => ");
document.write(a ^= b);
</script>
</body>
</html>
실행 결과 분석
위 예제에서 변수 a는 2(2진수 10), 변수 b는 3(2진수 11)입니다. 두 값을 비트 단위로 XOR 연산하면 01, 즉 십진수 1이 되고, 이 결과가 변수 a에 할당됩니다.
따라서 화면에는 다음과 같이 출력됩니다.
(a ^= b) => 1