6062 : [기초-비트단위논리연산] 비트단위로 XOR 하여 출력하기(설명)(py)
입력값 |
2개의 정수가 공백을 두고 입력된다. -2147483648 ~ +2147483647 |
출력값 |
두 정수를 비트단위(bitwise)로 xor 계산을 수행한 결과를 10진수로 출력한다. |
입력 예시 |
3 5 |
출력 예시 |
6 |
정답 및 가능한 정답
a, b = map(int,input().split())
print(a ^ b)
해설
비트 연산자
파이썬에서는 2진수의 비트 단위에서 활용하는 연산자를 제공한다.
& : AND 연산, 둘 다 참일 때 만족
| : OR 연산, 둘 중 하나만 참이어도 만족
^ : XOR 연산 : 둘 중 하나만 참일 때 만족(두 개의 값이 달라야 만족)
~ : NOT 연산 : 보수 연산(0과 1을 바꿈)
<< : 왼쪽 시프트 연산, 변수의 값을 왼쪽으로 지정한 비트 수만큼 이동
>> : 오른쪽 시프트 연산, 변수의 값을 오른쪽으로 지정한 비트 수만큼 이동
위 문제는 ^연산을 사용한 것이다.
3과 5를 입력하면 2진수 비트로
0011과
0101을 ^연산한 것이므로
0110이 출력돼서 답이 6이 되는 것이다.