|
本帖最后由 szfj 于 2018-6-25 20:33 编辑
看下,2进制加法,呵呵!
a = int(input("10进制转换2进制,请输入10进制数值:"))
e = a
d = []
x = False
s = ""
if a <= 0:
a = abs(a)
x = True
while a >= 1:
b = int(a / 2)
c = a % 2
d.append(c)
a = b
u = len(d)
if u <= 8:
n = 8
elif u <= 16:
n = 16
elif u <= 32:
n = 32
elif u <= 64:
n = 64
else:
n = u
for i in range(n - u): # n位补零:原码
d.append(0)
if x:
j = 0
for i in d: # 反码
j += 1
if i == 0:
d[j-1] = 1
else:
d[j-1] = 0
j = 0 # +1补码
for i in d:
j += 1
if i == 0:
d[j-1] = 1
break
else:
d[j-1] = 0
d.reverse()
for i in d:
s = s + str(i)
print("您输入的十进制数 %d 转换为二进制是 %s" % (e, s)) |
|