我期待一个小的二进制数

时间:2017-12-02 02:29:27

标签: python python-3.x binary

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,但我遇到了很大的失败。如果有人愿意帮助我,我会很高兴。谢谢。 :)

1 个答案:

答案 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)): ")