시간 제한 : 1 Sec 메모리 제한 : 128 MB
문제 설명
입력된 정수를 비트 단위로 참/거짓을 바꾼 후 정수로 출력해보자.
비트단위(bitwise)연산자 ~ 를 붙이면 된다. (~ : tilde, 틸드라고 읽는다.)
비트단위(bitwise) 연산자는, ~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor), <<(bitwise left shift), >>(bitwise right shift) 가 있다.
예를 들어 1이 입력되었을 때 저장되는 1을 32비트 2진수로 표현하면 00000000 00000000 00000000 00000001 이고, ~1은 11111111 11111111 11111111 11111110 가 되는데 이는 -2를 의미한다.
예시
a = 1
print(~a) # -2가 출력된다.
입력
정수 1개가 입력된다.
-2147483648 ~ +2147483647
출력
비트 단위로 1 -> 0, 0 -> 1로 바꾼 후 그 값을 10진수로 출력한다.
입력 예시
2
출력 예시
-3
내 풀이
a = int(input())
print(~a)
정답
a=int(input())
print(~a)
참고
컴퓨터에 저장되는 모든 데이터들은 2진수 형태로 바뀌어 저장된다.
0과 1로만 구성된 비트단위들로 변환되어 저장되는데, 양의 정수는 2진수 형태로 바뀌어 저장되고, 음의 정수는 "2의 보수 표현" 방법으로 저장된다.-1은 0에서 1을 빼고 32비트만 표현하는 형태로 11111111 11111111 11111111 11111111 로 저장된다.-2는 -1에서 1을 빼면 되므로 11111111 11111111 11111111 11111110 로 저장된다.즉, 정수 n이라고 할 때, ~n = -n - 1이고 -n = ~n + 1 과 같은 관계로 표현할 수 있다.
https://codeup.kr/problem.php?id=6059&rid=0
'코딩테스트 > CodeUp' 카테고리의 다른 글
6061 : [기초-비트단위논리연산] 비트단위로 OR 하여 출력하기(설명)(py) (0) | 2025.05.10 |
---|---|
6060 : [기초-비트단위논리연산] 비트단위로 AND 하여 출력하기(설명)(py) (0) | 2025.05.09 |
6058 : [기초-논리연산] 둘 다 거짓일 경우만 참 출력하기(py) (0) | 2025.05.09 |
6057 : [기초-논리연산] 참/거짓이 서로 같을 때에만 참 출력하기(설명)(py) (0) | 2025.05.09 |
6056 : [기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기(설명)(py) (0) | 2025.05.09 |