Python 将十进制转换为二进制和二进制转换为十进制的程序?

Python 将十进制转换为二进制和二进制转换为十进制的程序?,python,python-3.x,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(q

所以我打算写一个程序,将一个十进制数转换成二进制数,然后再编写一个相反的程序。我知道有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

有帮助吗?

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

#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

伪代码的翻译词典:

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

“设置商等于数,余数等于零”:

“divmod(商,2)”:


“提示用户输入”:

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

“(2^n)乘以x”:

“打印金额”:


使用此词典替换伪代码中的相应部分。所有其他零件(包括凹痕)保持在原位

注意:

通过伪代码,您的程序“Decimal to Binary”将在列中打印转换后的十进制数-从下到上读取结果。

回答您的实际问题时,没有。为您编写代码没有帮助。特别是当你不能很好地格式化你的问题时。你的问题到底在哪里?如果输出是错误的,请在问题中贴上它的输入。你将如何使用递归?如何使用递归?
int(input("Enter a decimal number: "))
quotient = number
remainder = 0
quotient // 2, quotient % 2
input("Enter a binary number: ")
n = len(number)
2**n * x
print(sum)