프로그래밍 문제 풀이/코드업(파이썬)

코드업[CodeUp] Python 기초 100제 [6059번]

태은코딩 2023. 12. 28. 13:40

6059 : [기초-비트단위논리연산] 비트단위로 NOT 하여 출력하기(설명)(py)

입력값
정수 1개가 입력된다.
-2147483648 ~ +2147483647
출력값
비트 단위로 1 -> 0, 0 -> 1로 바꾼 후 그 값을 10진수로 출력한다.

 

입력 예시
2
출력 예시
-3

 

정답 및 가능한 정답

a=int(input())
print(~a)

 

해설

비트 연산자
파이썬에서는 2진수의 비트 단위에서 활용하는 연산자를 제공한다.
& : AND 연산, 둘 다 참일 때 만족
| : OR 연산, 둘 중 하나만 참이어도 만족
^ : XOR 연산 : 둘 중 하나만 참일 때 만족
~ : NOT 연산 : 보수 연산(0과 1을 바꿈)
<< : 왼쪽 시프트 연산, 변수의 값을 왼쪽으로 지정한 비트 수만큼 이동
>> : 오른쪽 시프트 연산, 변수의 값을 오른쪽으로 지정한 비트 수만큼 이동

2의 보수
컴퓨터에서 음의 정수는 "2의 보수 표현"으로 저장된다.
2의 보수 : 음수를 나타내기 위한 부호 변환 방법
2의 보수 구하는 방법 : 2진수 비트 반전 후 1 더하기.
ex) 3을 -3으로 바꾼다.
>>> 0011=>1101
ex) 6를 -6으로 바꾼다.
>>> 0110=>1010

~ NOT 연산 원리
10진수 n이 있을 때, 그에 대한 음수 -n은 ~n+1과 같다.
고로 ~n은 -n-1과 같다.
~n=-n-1
~2는 -3이고
~-3은 2이다.