비트연산자의 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
반응형
'programming > DataManage' 카테고리의 다른 글
자주 사용되는 sql 명령어 종류 CRUD 개념 (0) | 2022.04.05 |
---|---|
비트연산자 not 비트가 0이며 1 1이면 0 (0) | 2021.09.04 |
비트연산자 or 비교되는 비트가 둘 중 하나가 1이면 1 (0) | 2021.08.31 |
비트연산자 and 비교되는 비트가 둘 다 1이면 1 (0) | 2021.08.30 |
게시판 페이징 mysql 5.x limit 를 이용한 게시물 나눠서 가져오기 (0) | 2021.08.07 |
댓글