我的老师正在教我们如何手工把二进制转换成数字。 我觉得很无聊,于是编写了一个简单的python脚本来自动完成上述转换。我写的代码如下-
def bin2num():
i=input("Enter a binary - ")
n=len(i)- 1
f=0
for e in i:
f=f+int(e)*(2^n)
n=n-1
print(f)
例如,如果二进制数是10111,我们通过如下操作将其转换为数字-
1*2^0+1*2^1+1*2^2+0*2^3+1*2^4=1+2+4+0+16=23
但是我的脚本返回11,而不是23
我问了我的教授,但不幸的是他没有找到错误,搜索互联网给了我很多答案,但我想知道为什么这不能计算正确的答案,以及如何解决这个问题,因此提出了这个问题
如果任何开发人员能抽出宝贵的时间来帮助我,我会非常高兴:)
^运算符是二进制异或运算符。 改用**
相关问题 更多 >
编程相关推荐