Python 二进制到十进制转换器(包括负数)

Python 二进制到十进制转换器(包括负数),python,binary,decimal,converter,Python,Binary,Decimal,Converter,我需要将二进制值(如“1010”)转换为十进制值。这需要包括负二进制 def BinaryToDecimal (n): n1 = n decimal = 0 i = 0 n = 0 while(n != 0): dec = n % 10 decimal = decimal + dec * pow(2, i) n = n//10 i += 1 print(decimal) 到目前为止,这就是我所拥有

我需要将二进制值(如“1010”)转换为十进制值。这需要包括负二进制

def BinaryToDecimal (n):

    n1 = n
    decimal = 0
    i = 0
    n = 0
    while(n != 0):
      dec = n % 10
      decimal = decimal + dec * pow(2, i)
      n = n//10
      i += 1
    print(decimal)
到目前为止,这就是我所拥有的,但它不起作用。我不知道还能做什么。请帮忙!我不允许使用任何花哨的python库,我应该手动编写代码

这将起作用:

def BinaryToDecimal(n):
    n = str(n)
    print(int(n,2))
Python外壳输出 二进制到十进制:

>>> bin_str = '11111111'
>>> int(bin_str,2)
255
小数到二进制:

>>> decimal = 255
>>> "{:b}".format(decimal)
'11111111'

设置n=0,然后立即测试n!=while循环中的0。更改此选项并计算您是否将二进制数作为字符串或整数传递?我不知道模运算符是否定义在字符串上。