Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 비트별 XOR(^) 연산자란? 개념부터 예제까지 총정리

비트별 XOR(^) 연산자는 두 숫자의 이진수 비트를 한 자리씩 비교하여, 두 비트가 서로 다를 때만 1을 반환하고 같으면 0을 반환하는 연산자입니다. 'XOR'은 '배타적 논리합(eXclusive OR)'의 줄임말로, 두 입력값이 다를 때만 참이 되는 성질을 가집니다.

XOR 연산의 기본 규칙

XOR 연산자는 다음 네 가지 비트 조합으로 작동합니다.

  • 0 ^ 0 = 0 (두 비트가 같음)
  • 1 ^ 1 = 0 (두 비트가 같음)
  • 1 ^ 0 = 1 (두 비트가 다름)
  • 0 ^ 1 = 1 (두 비트가 다름)

예제

아래 코드를 실행하면 자바스크립트에서 비트별 XOR 연산자가 실제로 어떻게 작동하는지 직접 확인할 수 있습니다.

<!DOCTYPE html>
<html>
   <body>
      <script>
         document.write("Bitwise XOR Operator<br>");

         // 7 = 00000000000000000000000000000111
         // 1 = 00000000000000000000000000000001
         document.write(7 ^ 1);
      </script>
   </body>
</html>

실행 결과 분석

위 코드를 실행하면 결과값으로 6이 출력됩니다. 이진수로 풀어서 살펴보면 그 이유를 쉽게 이해할 수 있습니다.

7 = 00000000000000000000000000000111
1 = 00000000000000000000000000000001
-------------------------------------
6 = 00000000000000000000000000000110

오른쪽 끝의 하위 3비트를 기준으로 보면, 7은 111, 1은 001입니다. 각 자리를 비교하면 최하위 비트는 1과 1로 같아 0이 되고, 나머지 두 자리는 1과 0으로 서로 달라 각각 1이 됩니다. 따라서 결과는 이진수 110, 즉 십진수 6이 됩니다.

XOR 연산자의 주요 활용

비트별 XOR 연산자는 단순한 비트 계산 외에도 실무에서 다양하게 활용됩니다.

  • 특정 비트 반전(Toggle): 어떤 값에 1과 XOR 연산을 하면 해당 비트가 0↔1로 전환됩니다.
  • 임시 변수 없이 두 값 교환: XOR 연산을 세 번 적용하면 별도의 임시 변수 없이 두 변수의 값을 맞바꿀 수 있습니다.
  • 간단한 암호화 및 체크섬: 같은 키로 두 번 XOR하면 원래 값이 복원되는 성질 때문에 데이터 무결성 검사 등에 사용됩니다.