如何在Python中使用递归将十进制转换为二进制?
本文将向您展示如何在Python中使用递归将十进制转换为二进制。
十进制数是对一般公众最常见的数字系统。它是基数10,只有10个符号-0,1,2,3,4,5,6,7,8和9。而二进制数是数字系统、网络和计算机专业人员最熟悉的数字系统。它是基数2,只有2个符号:0和1,这些数字可以分别表示为关和开。
当我们将一个数从十进制数制转换为二进制数制时,我们使用的是十进制到二进制转换。数字系统中使用的数字的总位数决定了所有数字系统的基数。例如,二进制数字系统的基数为2,因为它仅使用两个数字来表示数字。同样,十进制数字系统的基数为十,因为数字由十个数字表示。
使用递归(第一逻辑)
算法(步骤)
以下是要执行所需任务的算法/步骤 –
- 创建一个递归函数 getBinaryForm() ,使用 def 关键字将传递给它作为参数的十进制数转换为二进制形式。
-
使用 if条件 语句检查传递的数字是否等于0,使用等于()运算符
-
如果条件为真,即传递的十进制数为0,则返回0。
-
否则,使用递归逻辑返回传递给函数的十进制数的二进制形式(使用模运算符(%)获取数字的最后一位,并将数字除以2(二分之一)并乘以10,再将此值添加后再次调用递归函数)。
-
创建一个变量来存储输入数字。
-
通过传递输入的十进制数作为参数来调用 getBinaryForm() 函数,并打印函数返回的十进制数的二进制等价值。
例子
以下程序使用递归返回十进制数的二进制形式 –
#创建一个函数,将传递给它的十进制数
#作为参数转换为二进制形式
def getBinaryForm(decimalnum):
#检查传递的数字是否等于0
if decimalnum == 0:
#如果传递的数字为0,则返回0
return 0
else:
#否则获取数字的最后一位并将数字除以2(二分之一)并乘以10
#使用递归逻辑再次调用函数并添加值
return (decimalnum % 2 + 10 * getBinaryForm(int(decimalnum // 2))
#输入十进制数
decimalnum = 5
print("十进制数",decimalnum,"的二进制形式是:")
#通过将十进制数作为参数传递来调用getBinaryForm()函数,并打印结果的二进制等价值
print(getBinaryForm(decimalnum))
输出
运行以上程序将生成以下输出 –
十进制数 5 的二进制形式是:
101
使用递归(第二逻辑)
算法(步骤)
以下是执行所需任务的算法/步骤:
- 创建一个递归函数来使用def关键字将传递给它的十进制数转换为二进制形式,函数名为getBinaryForm()
-
使用条件判断语句if来检查传递的数字是否等于0
-
如果条件为真,即传递的十进制数为0,则返回0
-
通过将给定数字除以二来再次递归调用函数,并将结果存储在一个变量中
-
使用取模运算符(%)获取给定十进制数的最后一位,并将其加上10*的结果。
-
创建一个变量来存储输入数字
-
通过将输入的十进制数作为参数调用getBinaryForm()函数,并打印函数返回的十进制数的二进制等效值
例子
以下程序使用递归返回十进制数的二进制形式:
# 创建一个将传递给它的十进制数转换为二进制形式的函数
def getBinaryForm(decimalnum):
# 检查传递的数字是否等于0
if decimalnum == 0:
# 如果传递的数字为0,则返回0
return 0
# 再次递归调用函数,通过将给定数字除以二来得到结果
result = getBinaryForm(decimalnum // 2)
# 获取最后一位并将结果乘以10
return decimalnum % 2 + 10 * result
# 输入十进制数
decimalnum = 500
print("The binary equivalent of",decimalnum,"is:")
# 调用getBinaryForm()函数,并将十进制数作为参数传递给它
# 打印函数返回的十进制数的二进制等效值
print(getBinaryForm(decimalnum))
输出
执行以上程序将生成以下输出 –
The binary equivalent of 500 is:
111110100
结论
本文中,我们学习了两种使用递归进行计算给定十进制数的二进制形式的不同方法。我们学习了如何通过传递某些值(结果)来调用递归函数。我们还学习了如何将一个数字除以二以获取仅整数数字。
极客教程