1
예를 들어 -2 또는 -8을 입력하면 110, 11000이됩니다. 최소 이진수를 사용해야하므로 10, 1000을 얻고 싶습니다. 그래서 나는 부정적인 방법에 다른 방법을 사용해야합니다. LSB 1에 도달 할 때까지 1과 0을 바꿔 쓰려고했지만 길을 찾을 수 없습니다.10 진수에서 2 진수로 : 2의 보수, 음수 표현이 더 우수합니다.
(당신을 도울 : dekadikos = demical, diadikos = 이진, boith = 보조)
dekadikos = input()
while dekadikos != "end" :
dekadikos = int(dekadikos)
if dekadikos > 0 :
diadikos = bin(dekadikos)
diadikos = (diadikos[2:])
n = int(len(diadikos)) + 1
print(diadikos.zfill(n))
elif dekadikos == 0 :
diadikos = bin(dekadikos)
diadikos = (diadikos[2:])
print(diadikos)
else :
dekadikos = abs(dekadikos)
diadikos = bin(dekadikos)
diadikos = (diadikos[2:])
n = int(len(diadikos)) + 1
diadikos = diadikos.zfill(n)
boithdekadikos = 2**n - dekadikos
diadikos = bin(boithdekadikos)
diadikos = diadikos[2:]
print (diadikos)
dekadikos = input()
하여 최소의 2의 보수 표기에서 :
당신은 제로 부정을 긍정적 커버하는 대신이 일을 할 수 있습니까? – 3Doubloons
demical : 2는 2 진수입니다 : 10 – giorgosan
10 진수 2가 10이고 -2가 10이 되길 원한다면, 10을 -2로, 10을 -2로 어떻게 구별 할 것입니까? – 3Doubloons