[기초-비트단위논리연산] 비트단위로 NOT 하여 출력하기(설명)(py)
python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용
codeup.kr
[문제]
입력 된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력해보자.
(비트 단위로 1 -> 0, 0 -> 1로 바꾼 후 그 값을 10진수로 출력한다.)
[input 예시]
2
[output 예시]
-3
[나의 풀이]
## 풀이 1
a = int(input())
print('%d' % ~a)
## 풀이 2
a = int(input())
print(~a)
🔽 % 관련 문제, 참고하세요
[2021.07.04] CodeUp # Python 기초 100제_6043_실수 2개 입력받아 나눈 결과 계산하기
[기초-산술연산] 실수 2개 입력받아 나눈 결과 계산하기(py) 본 문제는 python 의 빠른 기초 학습을 위해 설계된 문제로서 python 코드 제출을 기준으로 설명되어 있습니다. ------ 실수 2개(f1, f2)를
pythontoomuchinformation.tistory.com
비트단위 연산자?
비트단위(bitwise) 연산자의 종류
- ~ (bitwise not) '틸드'라고 읽는다
- & (bitwise and)
- | (bitwise or)
- ^ (bitwise xor)
- << (bitwise left shift)
- >> (bitwise right shift)
따라서, 문제에서 요구하는 대로 비트단위로 참/거짓을 바꾸려면
비트단위(bitwise)연산자 '~' 를 붙이면 된다.
참/거짓을 바꾼다는 말이란 무엇일까?
아래 예시를 보며 알아보자~!
1을 32비트로 저장하면 아래와 같이 2진수로 표현되어 저장된다.
00000000 00000000 00000000 00000001
~1은
11111111 11111111 11111111 11111110 (이는 -2를 의미)
0은 1로 1은 0으로 완전히 바뀐 것을 볼 수 있다!
이러한 내용을 간단히 표현하면, 정수 n이라고 할 때,
~n = -n - 1
-n = ~n + 1 과 같은 관계로 표현할 수 있다.
[참고] 컴퓨터에 저장되는 모든 데이터들은 2진수 형태로 바뀌어 저장된다.
0과 1로만 구성되는 비트단위들로 변환되어 저장되는데,
양의 정수는 2진수 형태로 바뀌어 저장되고, 음의 정수는 "2의 보수 표현"방법으로 저장된다.
'# 3. APS > CodeUp' 카테고리의 다른 글
CodeUp # Python 기초 100제_6061_비트단위로 OR 하여 출력하기_(비트단위 논리연산, 버티컬바 Vertical bar) (0) | 2021.07.04 |
---|---|
CodeUp # Python 기초 100제_6060_비트단위로 AND 하여 출력하기_(비트단위 논리연산, 앰퍼샌드 Ampersand) (0) | 2021.07.04 |
CodeUp # Python 기초 100제_6046_정수 1개 입력받아 2배 곱해 출력하기_(비트시프트연산) (0) | 2021.07.04 |
CodeUp # Python 기초 100제_6043_실수 2개 입력받아 나눈 결과 계산하기 (0) | 2021.07.04 |
CodeUp # Python 기초 100제_6038_정수 2개 입력받아 거듭제곱 계산하기 (0) | 2021.07.04 |