好吧,第一次发帖,如果问题不可行请见谅,无视;
背景: 我在计算机科学 160。自高中以来我没有上过任何与计算机相关的类(class),所以加入这个类(class)对我来说是一个很大的转变。这一切看起来都非常先进。我们一直在使用 Python 工作,每周都会提示我们编写一个程序。
我已经处理这个问题一个多星期了,甚至开始都很难。
提示是读取一个只包含 1 和 0 的整数,
逐位处理二进制数并报告十进制等值。现在,我从一位同学那里得到了一些提示,它至少给我指明了方向。
设置几个计数器;
使用 %
运算符检查数字除以 2 的余数,并切掉最后一个数字(向右)以继续处理下一个数字。
我很难思考要对二进制数字本身使用什么公式,将数字转换为十进制。
setbitval = 0
counter = 0
user = int(input("enter a binary value. "))
if user % 2 == 1:
user = (user/10) - .1
setbitval += 1
这就是我目前所知道的一切......我的想法正在阻碍。我搜索了又搜索,甚至通过这些论坛。
非常感谢任何信息或想法,
吨
编辑:好的伙计们,每个人的帮助都非常有用,但我在检查用户输入是否不是二进制数时遇到问题。
for i in reversed(bits):
decimal += 2**counter * int(i)
counter += 1
这是这里有人给我的公式,我一直在尝试“for i in bits: if i in bits: != 0 or 1”和“if i in bits: >= 1 or <”的不同迭代=0".
有什么想法吗?
最佳答案
您可以使用此代码:
binary= raw_input("Binary: ")
d= int(binary, 2)
print d
关于python - 在 python 中将二进制转换为十进制(没有内置二进制函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47318771/