【问题标题】:Program to convert decimal to binary and binary to decimal?将十进制转换为二进制和二进制转换为十进制的程序?
【发布时间】:2021-09-20 18:18:06
【问题描述】:

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

有什么帮助吗?

【问题讨论】:

  • 回答您的实际问题,不。为您编写代码无济于事。尤其是当您懒得正确格式化您的问题时。
  • 您的问题到底出在哪里?如果输出错误,请将其发布在问题中,并附上其输入。

标签: python python-3.x


【解决方案1】:

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

#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

【讨论】:

【解决方案2】:

您的伪代码的翻译字典:

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

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

“商等于数,余数为零”:

quotient = number
remainder = 0

"divmod(quotient,2)":

quotient // 2, quotient % 2

“提示用户输入”:

input("Enter a binary number: ")

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

n = len(number)

"(2^n) 次 x":

2**n * x

“打印总和”:

print(sum)

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

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

【讨论】:

    猜你喜欢
    • 2012-06-26
    • 1970-01-01
    • 2014-12-15
    • 2011-09-04
    • 2013-01-24
    • 2016-08-28
    • 2017-07-15
    相关资源
    最近更新 更多