Python 如何使用递归将十进制转换为二进制
在这篇文章中,我们将展示如何使用递归在Python中将十进制转换为二进制。
十进制数是对大多数人来说最熟悉的数字系统。它是以10为基数,只有10个符号-0、1、2、3、4、5、6、7、8和9。而二进制数是数字系统、网络和计算机专业人员最熟悉的数字系统。它是以2为基数,只有两个符号:0和1,这些数字可以表示为关和开。
当我们将一个数字从十进制数制转换为二进制数制时,我们使用十进制到二进制转换。数字系统中使用的总位数决定了所有数字系统的基数。例如,二进制数制的基数为二,因为它只使用两个数字来表示一个数字。同样,十进制数制的基数为十,因为一个数字由十个数字表示。
使用递归(第一种逻辑)
步骤
执行所需任务的算法/步骤如下:
- 使用 def 关键字创建递归函数 getBinaryForm() ,将传递给它的十进制数转换为二进制形式。
-
使用 if 条件语句检查传递的数字是否等于0。
-
如果条件为真,即传递的十进制数为0,则返回0。
-
否则,使用递归逻辑返回传递给函数的十进制数的二进制形式(使用模运算符(%)获取最后一位数字,并将数字除以2(一半),然后乘以10,并再次调用递归函数)。
-
创建一个变量来存储输入数字。
-
通过传递输入的十进制数作为参数调用 getBinaryForm() 函数,并打印函数返回的十进制数的二进制等价物。
示例
以下程序使用递归返回一个十进制数的二进制形式:
# creating a function to convert decimal number passed to it
# as an argument into a binary form
def getBinaryForm(decimalnum):
# checking whether the number passed is equal to 0
if decimalnum == 0:
# returning 0 if the number passed is 0
return 0
else:
# Else getting the last bit of the number and dividing the number by 2(half) and multiplying it with 10
# Calling the recursive function again with this value-added
return (decimalnum % 2 + 10 * getBinaryForm(int(decimalnum // 2)))
# input decimal number
decimalnum = 5
print("The binary equivalent of",decimalnum,"is:")
# calling the getBinaryForm() function by passing the decimal number as an argument
print(getBinaryForm(decimalnum))
输出
在执行时,以上程序将生成以下输出 &minnus;
The binary equivalent of 5 is:
101
使用递归(第二个逻辑)
步骤
以下是执行所需任务的算法/步骤:
- 创建一个递归函数 getBinaryForm() ,使用 def 关键字将传递给它的十进制数转换为二进制形式。
-
使用 if条件语句 检查传递的数字是否等于0。
-
如果条件为真,即传递的十进制数为0,则返回0。
-
通过将给定的数字除以2再次递归调用函数,并将结果存储在一个变量中。
-
使用取模运算符(%)获取给定十进制数的最后一位,并将其与上述结果相加乘以10。
-
创建一个变量来存储输入的数字。
-
通过将输入的十进制数作为参数调用 getBinaryForm() 函数,并打印函数返回的十进制数的二进制等价物。
示例
以下程序使用递归返回一个十进制数的二进制形式。
# creating a function to convert decimal number passed to it
# as an argument into a binary form
def getBinaryForm(decimalnum):
# checking whether the number passed is equal to 0
if decimalnum == 0:
# returning 0 if the number passed is 0
return 0
# Call the function recursively again by passing the given number by half
result = getBinaryForm(decimalnum // 2)
# Getting the last bit and multiply the result with 10
return decimalnum % 2 + 10 * result
# input decimal number
decimalnum = 500
print("The binary equivalent of",decimalnum,"is:")
# calling the getBinaryForm() function by passing
# the decimal number as an argument
print(getBinaryForm(decimalnum))
输出
在执行时,上述程序将输出以下内容 –
The binary equivalent of 500 is:
111110100
结论
在本文中,我们学习了使用递归计算给定十进制数的二进制形式的两种不同方法。我们学习了如何通过传递一些值(结果)来调用递归函数。我们还学习了如何通过将数字除以二得到整数数字。