たとえば、-2 または -8 を指定すると、110、11000 になります。ただし、最小の 2 進数を使用する必要があるため、10、1000 を取得したいと考えています。だから私は否定的なものに別の方法を使用する必要があります. LSB 1 に到達するまで 1 と 0 を交換しようとしましたが、方法が見つかりません。
(あなたを助けるために: dekadikos = デミカル、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()