十进制到二进制的实现出错

2024-10-01 02:29:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我的老师正在教我们如何手工把二进制转换成数字。 我觉得很无聊,于是编写了一个简单的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

我问了我的教授,但不幸的是他没有找到错误,搜索互联网给了我很多答案,但我想知道为什么这不能计算正确的答案,以及如何解决这个问题,因此提出了这个问题

如果任何开发人员能抽出宝贵的时间来帮助我,我会非常高兴:)


Tags: 答案代码in脚本forinputlendef