본문 바로가기
programming/DataManage

비트연산자 xor 비교되는 비트가 같으면 0 다르면 1

by 개코 - 개발과 코딩 2021. 9. 2.

비트연산자의 xor 은 두 개의 비트를 비교하여 같으면 0 다르면 1을 반환한다. 반전이라 생각할 수 있겠지만 그렇지 않다. not 과 비슷할 수 있지만 2개의 비트를 비교하는 점에서 다르다.

 

비트연산자 xor

비트연산자 xor 은 두 개의 비트를 비교한다.

비교한 비트의 값이 같으면 0 다르면 1이다.

not 하고 동작이 다르다는 점에 주의하자.

예를 들면 아래와 같다.

첫번째 행과 두번째 행을 비교해 본다.

세번째 행의 비트는 결과이다.

첫번째 행의 비트와 두번째 행의 비트를 비교했을 때 같으면 0 다르면 1임을 알 수 있다.

 

위의 과정을 파이썬으로 구현해 보면 아래와 같다.

print('----------')

vA = 5
vB = 15

print("vA 2진수 : ", type(bin(vA)), bin(vA))
print("vB 2진수 : ", type(bin(vB)), bin(vB))

vC = bin(vA ^ vB)
vS = str(vC)
vI = int(vS, 2)

print("vC 2진수 : ", type(vC), vC)
print("vC 10진수 : ", type(vI), vI)

print('----------')

숫자 5와 15를 비트연산자 xor 를 이용하여 두 개의 비트를 비교한다.

위에서 언급했듯이 비트연산자 xor은 비교되는 두 개의 비트가 같으면 0 다르면 1이라고 했다.

5와 15를 xor 를 이용해 비트연산한 결과는 10이다.
0101 ^ 1111 = 1010

반응형

댓글