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

파이썬에서 ^ 연산자의 기능은 무엇일까요? XOR 연산자 완벽 정리

파이썬의 ^ 연산자란?

파이썬에서 ^(캐럿) 기호는 XOR(배타적 논리합, EXOR) 연산자를 의미합니다. 이 연산자는 비트(bit) 단위로 동작하는 비트 연산자(bitwise operator)로, 두 피연산자의 각 비트를 하나씩 비교하여 한쪽 비트가 1이고 다른 쪽 비트가 0일 때만 결과로 1을 반환합니다. 두 비트가 모두 1이거나 모두 0이라면 0을 반환합니다.

XOR 연산의 진리표

ABA ^ B
000
011
101
110

XOR 연산 예제

예를 들어 a = 60(2진수 00111100)이고 b = 13(2진수 00001101)라고 가정해 봅시다. 이때 a와 b의 비트별 XOR 연산 결과는 49(2진수 00110001)가 됩니다.

>>> a=60
>>> bin(a)
'0b111100'
>>> b=13
>>> bin(b)
'0b1101'
>>> c=a^b
>>> bin(c)
'0b110001'

내장 함수 bin()은 정수를 2진수 문자열로 변환해 주며, 결과 앞에는 2진수임을 나타내는 접두사 0b가 붙습니다.

다른 숫자와의 XOR 예제

60에 2를 XOR 연산하면 어떻게 될까요? 2는 2진수로 00000010이므로, 해당 비트 위치만 반전되어 결과는 62(0b111110)가 됩니다.

>>> a=60
>>> bin(a)
'0b111100'
>>> b=a^2
>>> bin(b)
'0b111110'

XOR 연산자의 활용 분야

XOR 연산자는 단순한 비트 계산을 넘어 다양하게 활용됩니다.

비트 반전(토글): 특정 비트를 0에서 1로, 1에서 0으로 손쉽게 뒤집을 수 있습니다.
간단한 암호화: 같은 키로 두 번 XOR 연산하면 원래 값이 복원되는 성질을 이용해 데이터를 암호화·복호화할 수 있습니다.
플래그 상태 관리: 프로그래밍에서 참/거짓 상태를 전환할 때 유용하게 사용됩니다.
중복 값 찾기: 배열에서 짝을 이루지 않는 유일한 값을 효율적으로 찾는 알고리즘에도 응용됩니다.

정리하면, 파이썬의 ^ 연산자는 두 비트가 서로 다를 때만 1을 반환하는 XOR 비트 연산자이며, 비트 조작과 논리 처리에 필수적인 도구입니다.