所以我打算编写一个程序,将十进制转换为二进制,然后另一个将相反的转换。我知道有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
任何帮助?
答案 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)
使用此词典替换替换伪代码中的相应部分。所有其他部分保留在原位,包括缩进。
注意:强>
通过伪代码编程你的程序"十进制到二进制"将在列中打印转换后的十进制数 - 从下到上读取结果 。