程序将十进制转换为二进制,二进制转换为十进制

时间:2017-09-23 04:12:40

标签: python python-3.x

所以我打算编写一个程序,将十进制转换为二进制,然后另一个将相反的转换。我知道有python函数可以做到这一点,但我认为我们的目的是更长的方式。伪代码是这样的:

十进制到二进制:

number = Prompt user for input, convert to int

Set quotient equal to number, remainder equal to zero

while(number!=0)

     (quotient,remainder)=divmod(quotient,2)

     print(remainder)

二进制到十进制

number=Prompt user for input

Get string length of number = n

for x in range(n)

   sum+=(2^n) times x

print sum

任何帮助?

2 个答案:

答案 0 :(得分:0)

手动转换代码。我在这里使用循环。它也可以使用递归来完成。

#Binary to Decimal
def btod(binary):
    decimal = 0 
    for digit in binary: 
        decimal = decimal*2 + int(digit) 

    return decimal

#Decimal to Binary
def dtob(decimal):
    if decimal == 0:
        return 0

    binary=''
    decimal = int(decimal)          #incase arg is int
    while (decimal > 0):
        binary+= str(decimal%2)
        decimal = int(decimal/2)

    return binary[::-1]     #reverse the string


print(btod('101'))
#5

print(dtob('5'))
#101

答案 1 :(得分:0)

伪代码的翻译词典:

"提示用户输入,转换为int":

int(input("Enter a decimal number: "))

"将商设为等于数,余数等于零":

quotient = number
remainder = 0

" divmod(商,2)":

quotient // 2, quotient % 2

"提示用户输入":

input("Enter a binary number: ")

"获取数字的字符串长度= n":

n = len(number)

"(2 ^ n)次x":

2**n * x

"打印总和":

print(sum)

使用此词典替换替换伪代码中的相应部分。所有其他部分保留在原位,包括缩进。

注意:
通过伪代码编程你的程序"十进制到二进制"将在列中打印转换后的十进制数 - 从下到上读取结果