while playAgain == "d":
intDec = int(input("\nType in a normal, or decimal, number: "))
x = intDec
y = 0
tot = ""
while(x>=0):
y=x%2
x/=2
tot+=str(y)
print("\n", tot[::-1],"\n")
playAgain = input("What do you want to do? (c, d (anything else to quit)): ")
这是我在更大项目中的代码的一部分。我已经成功添加了将二进制转换为十进制的功能。出于某种原因,我无法让这个工作。我尝试了很多东西,甚至编辑了一些。 while(x>=0)
是最合乎逻辑的事情,当我运行它时它什么都没有。如果我将其更改为(x>0)
或(x!=0)
,则会出现完整错误,我会将其放在帖子的底部,但请继续阅读。我试过while(x>-1)
也没有给我什么,只是漫长的等待。有人对此有所了解吗?这是错误BTW:
输入正常或十进制数字:155
423-e5323-e1323-e5.2323-e5223-e1223-e39.1223-e58.3223-e66.7123-e35.1123-> e360.3123-e621.6023-e3522.1023-e6054.2023 -e109.4023-e3208.9913-e54069.1913-> e9029.3913-e8148.7813-e63865.1813-e427631.3813-e54372.6713-e6986452.1713-> e973905.2713-e4857810.5613-e76157300 0.1613-e43305700.2613-e7600510.4613-> e73310030.8513-e476200606.1513-e53500212.3513-e596010424.6413-e931208482.1413-> e872406965.2413-e655802931.5313-e52117148720.1313-e5224386550.2313 - > e548663111.4313-e96337222.8213-e837645446.1213-e699574390982.3213 -
等......它持续了大约一百行,并以.05.11
结束我期待的回应是10011011,但我遇到了很大的失败。如果有人愿意帮助我,我会很高兴。谢谢。 :)
答案 0 :(得分:1)
内置功能可用于此
bin(155) #10011011
你必须使用地板划分来获得商的不可分割的部分。
而且你必须使用x>0
来避免无限循环。
编辑:
while playAgain == "d":
intDec = int(input("\nType in a normal, or decimal, number: "))
x = intDec
y = 0
tot = ''
while(x>0):
y=x%2
x//=2
print(y)
tot+=str(y)
print("\n",tot[::-1],"\n")
playAgain = input("What do you want to do? (c, d (anything else to quit)): ")