将二进制字符串转换为十进制

时间:2019-11-01 15:13:16

标签: python

我想编写一个函数,该函数需要一个Binary字符串,并将结果返回为Decimal。

我已经写了一些代码,但是如果我不知道它需要是二进制字符串,而不仅仅是数字。有没有一种方法可以更改代码,以便它接收字符串?我不想将二进制数转换为浮点数,我想将其转换为十进制数。

#Binary to Decimal
def bi_to_dec(binary):
  binary1 = binary 
  decimal, i, n = 0, 0, 0
  while(binary != 0): 
    dec = binary % 10
    decimal = decimal + dec * pow(2, i) 
    binary = binary//10
    i += 1
  return decimal  

1 个答案:

答案 0 :(得分:1)

我将假设这是一个练习,您必须自己编写算法。否则,您应该只使用内置函数int(binary, 2)来将基数2中的字符串binary解析为int

如果binary是一个字符串,则您需要更改的代码部分是从字符串中获取各个位的部分。您可以通过写入for bit in reversed(binary):遍历字符串中的位。这为您提供了一个变量bit,它是当前位作为字符串,并且由于您反转了字符串,因此按照算法的要求,位的顺序从最低有效到最高有效。从那里,您可以简单地使用dec = int(bit)将该位转换为int。

相关问题