진취적 삶
-2진수 본문
- 2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 2, 2, 2, 2이 표현 되지만 -2진법에서는 (-2) = 1, (-2) = -2, (-2) = 4, (-2) = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 11011, 11000, 11001 등이다.
10진법의 수를 입력 받아서 -2진수를 출력하는 프로그램을 작성하시오.
모범답안
n = int(input())
stack = []
ans = ""
if n == 0:
ans = 0
while n:
if n % -2:
stack.append(abs(n % -2))
n = (n // -2) + 1
else:
stack.append(n % -2)
n = n // -2
while stack:
ans += str(stack.pop())
print(ans)
나머지가 있는 경우에는 n = (n // -2) + 1 없는 경우에는 n = n // -2
stack pop 해서 뒤집기