17课!def 写一个用“除二取余法"来写个二进制函数问题
本帖最后由 Twilight6 于 2020-3-29 15:08 编辑def trun(x):
Q = [];z = 0
while True:
if x != 0:
z = x % 2
x = x // 2
Q.append(z)
if x == 0:
print('0b',end="")
for each in Q:
print(each,end="")
break
else:
return x
我写的这串代码感觉明明没错,却打印出来的二进制和bin()的二进制不一样?
比如1 我打印出了 0b10??? 是哪里有问题求大佬帮忙解读下!
本帖最后由 sunrise085 于 2020-3-21 01:03 编辑
你的程序问题太多。帮你修改了
def trun(x):
Q = [];z = 0
while x:
z = x % 2
x = x // 2
Q.insert(0,z)
if Q:
Q=
a=''.join(Q)
return '0b'+a
else:
return '0b0'
print(trun(14)) 在你的程序基础上修改的版本如下:
def trun(x):
Q = [];z = 0
while True:
if x != 0:
z = x % 2
x = x // 2
Q.insert(0,z)
if x == 0:
print('0b',end="")
for each in Q:
print(each,end="")
break
else:
print('0b0')
break
trun(10)
sunrise085 发表于 2020-3-21 01:08
在你的程序基础上修改的版本如下:
谢谢!!!
页:
[1]