파이썬에서는 ^ 연산자를 사용하면 정수, 16진수 등 모든 유형의 숫자에 대해 XOR(배타적 논리합) 연산을 손쉽게 수행할 수 있습니다. 특히 16진수의 경우 다음과 같이 작성하면 됩니다.
a = 0x12ef b = 0xabcd print(hex(a ^ b))
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
0xb922
XOR 연산의 원리
숫자 앞에 붙는 0x 접두사는 해당 숫자가 16진수 표현임을 나타냅니다. 파이썬은 내부적으로 모든 정수를 이진수로 처리하기 때문에, 숫자를 16진수로 표현했더라도 ^ 연산자를 그대로 사용할 수 있습니다.
hex() 함수는 연산 결과를 다시 16진수 문자열 형태로 변환해 주는 역할을 합니다. 만약 10진수 값으로 출력하고 싶다면 hex()를 생략하고 print(a ^ b)처럼 작성하면 됩니다.
또한 ^ 연산자는 16진수뿐만 아니라 10진수, 8진수(0o), 2진수(0b) 등 다양한 정수 표현 방식에도 동일하게 적용할 수 있습니다.