二进制字符串到十进制整数转换器

时间:2015-04-11 13:57:38

标签: python pseudocode

我正在尝试编写一个程序,将二进制的4位字符串表示形式转换为十进制(基数为10)的整数。

这是我到目前为止所得到的,但是在输入4位二进制文​​件(例如1101)后,它就出现了:'>>>'.

以下是我关注的流程图:

这是我的代码:

def binaryToDenary():
    Answer = 0
    Column = 8
    Bit = int(input("Enter bit value: "))
    if Column >1:
        Answer = Answer + (Column * Bit)
        Column = Column/2
    elif Column <1:
        print("The decimal value is: " + Answer)


binaryToDenary()

我做错了什么?任何提示?

3 个答案:

答案 0 :(得分:1)

看起来你没有实现循环:

def binaryToDenary():
    Answer = 0
    Column = 8
    while not Column < 1:
        Bit = int(input("Enter bit value: "))
        Answer = Answer + (Column * Bit)
        Column = Column/2
    print("The decimal value is: {}".format(Answer))

答案 1 :(得分:0)

您可以使用内置方法,也可以像下面这样制作自己的功能:

bintodec = lambda arg: sum(int(j) * 2**(len(arg) - i - 1) for i, j in enumerate(arg))

答案 2 :(得分:0)

试试这个。这是图中的直接翻译。请注意,在生产代码和真实库中,这不是一个特别有用的功能,只能用作检查练习。

def integer_from_binary_input():
    answer = 0
    column = 8
    while True:
        bit_chars = raw_input("Enter bit value:")
        assert len(bit_chars) == 1
        assert bit_chars in "01"
        bit = int(bit_chars)
        answer = answer + column * bit
        column /= 2
        if column < 1:
            break
    print "Decimal value is: %d" % answer
    return answer

output = integer_from_binary_input()