我试图制作一个将二进制数转换为十进制数的Python程序

时间:2015-04-27 03:06:42

标签: python python-2.7 binary procedure

我试图用Python中的以下代码创建一个过程:

print "Program for Binary to Decimal Conversion"
dec = 0`enter code here`
bin = 0
factor = 1;
print "Enter Binary Number:", 
bin = input()
while(bin > 0):
   if( (bin % 10) == 1):
      dec += factor
   bin /= 10
   factor = factor * 2
print "The Decimal Number is: ", dec

它目前在shell中运行,询问输入是什么,我想让它像一个过程,这样它只是在python shell中运行而不需要任何东西,输入行看起来像:

procedure(1110101)

3 个答案:

答案 0 :(得分:0)

Python中的函数定义如下:

def funcname(args):
    # indented code is not optional
    # these are comments

例如:

def bin_to_dec(binary):
    print "Program for Binary to Decimal Conversion"
    dec = 0
    factor = 1
    while(binary > 0):
       if( (binary % 10) == 1):
          dec += factor
       binary /= 10
       factor = factor * 2
    print "The Decimal Number is: ", dec

现在您可以将其称为

bin_to_dec(10010110)

我建议做一些基础教程来学习Python基础知识。网络有很多。

现在看看这个:

def bin_to_dec(binary):
    return int(binary, 2)

>>> print bin_to_dec('10000000')
128

答案 1 :(得分:0)

二进制到十进制转换背后的理论是每个数字代表2的幂。 所以你可以这样做: - 将数字作为字符串 - 通过字符串乘以数字乘以它代表的2的幂 像这样:

    #ex string = 101
    def binToDec(string):
        binString = str(string).reverse() #reverse to make iteration easier sort of
        dec=0;
        place=0;
        for digit in binString:
            dec+= (int(digit))*(2**place)

        return dec

答案 2 :(得分:0)

你必须在Python中声明一个过程,如[here](http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/functions.html

所示

e.g。     def bin2dec(number):       你的代码