728x90
반응형
XOR이란 무엇인가?
음이 아닌 정수는 항상 이진법으로 유일하게 표현할 수 있다.
이때, 각 자리 숫자는 또는 이며, 2의 k승 숫자를 k번째 비트라고 한다.
XOR은 기호로 '^'방식으로 나타내며 임의의 두 수 x, y가 이진수로 나타냈을 때 k번 비트가 같다면 0, 다르면 1을 부여해서 결과를 얻는다.
예시로
xor = 0
nums = [3, 5, 2]
for num in nums:
xor ^= num
다음과 같은 코드를 짜게 된다면 아래와 같이 동작한다.
xor = 0 ^ 3 = 3 # 00(2) ^ 11(2) = 11(2) 모든 자리 숫자가 다르므로 모든 자리 숫자 1
xor = 3 ^ 5 = 6 # 011(2) ^ 101(2) = 110(2) 1번,2번 비트 숫자가 다른 반면 3번 비트 숫자가 같으므로 110(2)
xor = 6 ^ 2 = 4 # 110(2) ^ 010(2) = 100(2) 1번 비트 숫자가 다르고 2,3번 비트 숫자가 같으므로 110(2)
728x90
반응형
'알고리즘' 카테고리의 다른 글
[Python] Codility FloodDepth (0) | 2025.04.14 |
---|---|
재귀와 반복의 차이 (0) | 2025.04.14 |
[python] 파이썬에서 제곱사용할 시 pow(), math.pow(), ** type 차이 (0) | 2025.03.17 |
[python] 2차원 리스트 원소 여러개 수정 (0) | 2025.03.16 |
[python] 백준 19238 스타트 택시 (0) | 2023.06.22 |
댓글