Когда я даю например: -2 или -8, я получаю 110, 11000. Но я хочу получить 10, 1000, потому что он должен использовать минимальные двоичные числа. Поэтому я должен использовать другой путь к отрицательным. Я попытался поменять местами 1 и 0, пока не доберусь до LSB 1, но я не могу найти способ.Десятичное значение для двоичного: дополнение двух, лучшее выражение для негативов
(Чтобы помочь вам: 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 будет двоичным: 10 – giorgosan
Если десятичная цифра равна 10, и вы хотите, чтобы -2 тоже было 10, как вы будете различать 10 значений -2 и 10, что означает 2? – 3Doubloons