如何使用自己的python算法将二进制转换为int

如何使用自己的python算法将二进制转换为int,python,python-3.x,algorithm,Python,Python 3.x,Algorithm,我想使用自己的算法将birnary转换为in 代码如下: binary="" decimal="" while binary!="exit": decimal= input(">>") decimal = decimal if decimal!="0": n = len(decimal) -1 n = pow(n, 2) print(n) 输入: 1010 输出错误: 9 当我输入二进制并用计算器检查它们

我想使用自己的算法将birnary转换为in

代码如下:

binary="" 
decimal=""
while binary!="exit":
    decimal= input(">>")
    decimal = decimal
    if decimal!="0":
        n = len(decimal) -1
        n = pow(n, 2)
        print(n)
输入:

1010
输出错误:

9
当我输入二进制并用计算器检查它们时,它们不是真的。
我不知道该如何为代码中的错误道歉


谢谢你的回复。首先,我想这句话可能与你需要的相反。如果要转换二进制数字,2是基数,
n
将是将其提升到的幂,因此需要
n=pow(2,n)


现在,由于要将所有设置为1的数字相加,因此还需要将它们添加到新变量中。如果您对此有更多问题,请在这里提问,我会看看我能提供什么帮助:)

您需要将输入(用户输入二进制数)移动到处理它的循环之外。然后是包含1和0的字符串,可以循环使用

从字符串的右端开始,将该数字(1或0)乘以1(我们将此乘数称为
序数
),并将结果保存为
总计

将序号乘以2

从输入字符串中抓取下一个数字(从右侧),并将其乘以
序号
,将结果添加到
总数

继续,将
序数相乘
,然后用它与输入字符串中的下一个数字相乘,直到输入字符串中的“数字”用完为止


Print
total

暂时忘掉Python吧——你能用文字清楚地表达一下你将如何手工操作吗?您似乎在真正理解您要做的事情之前就试图编写代码。请编辑您的问题,向我们展示您的输入数据和所需输出的示例。@MarianD-我认为输入/输出相当明显,输入“101”,您将得到“5”。问题是所显示的代码与执行该转换不太接近。。1010=10和111111=63@BAt-我想,在回应MarianD的评论时,您发布了所需的输出,我没有意识到这是实际输出:)谢谢回答,我将尝试改进我的代码。谢谢回答“谢谢”表示赞成和/或接受答案。我想赞成,但我没有足够的徽章that@MarianD-蝙蝠需要答案。但谢谢你试着帮我找代表;)