본문 바로가기
programming/DataManage

비트연산자 not 비트가 0이며 1 1이면 0

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

비트연산자 not 은 반전효과를 가진다. 기존에 가지고 있던 비트를 반대로 바꿔버린다. not 비트연산을 하고자 하는 비트가 0101 이면 1010 으로 변경된다. 비트연산자 xor 하고 비슷할 수 있어 헷갈리기 쉽다.

비트연산자 not

이미 정해진 비트를 반전시킨다.

반전시킨다는 것은 0을 1로, 1을 0으로 변경시키는 것을 말한다.

간혹, 비트연산자 xor 과 헷갈릴 수도 있다.

비트연산자 xor은 같으면 0 틀리면 1이다.

비트연산자 not은 1을 0을로 0을 1로 바꾼다.

비트연산자 not 은 비교대상이 없이 변경되는 비트 자체를 반전시킨다.

 

첫번째 행의 비트는 0101이다.

이것을 비트연산자 not 을 하면 1010이다.

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

vA = 5

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

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

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

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

숫자 5를 비트연산하여 반전시켰다.

그런데 -인 음수가 붙어 나온다.

이것은 부호 비트까지 변경된 것을 의미한다.

 

반응형

댓글