Python中十进制转二进制的算法

2025年1月5日 | 阅读 4 分钟

什么是十进制数?

十进制数使用 0 到 9 共 10 个数字的数字系统。十进制数系统的基数是 10。它也称为基数为 10 的数字系统。它用于通过不同的组合形成数字。在十进制数中,数字从个位向左移动时,每个数字的有效性会增加 10 倍。

例如:(345)10 = 3 x 102 + 4 x 101 + 5 x 100

什么是二进制数?

二进制数使用两个数字:0 和 1。二进制数的基数是 2。它也称为基数为 2 的数字系统。二进制数字的组合用于形成不同的数字。在二进制数中,数字从个位向左移动时,每个数字的有效性会增加 2 倍。

例如:(11011)2 = 1 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20

在 Python 中将十进制数转换为二进制数

问题陈述

我们有十进制数,需要使用 Python 将它们转换为二进制数。

让我们通过示例来理解问题陈述。

示例 1

输入

输出

1111011

示例 2

输入

输出

10001110

有不同的方法可以将十进制数转换为二进制数。

方法 1:递归

算法

  1. 定义一个函数
  2. 检查 n > 1
  3. 使用 n % 2 转换十进制数
  4. 在每次迭代中打印每个数字
  5. 从用户处获取输入
  6. 调用函数
  7. 打印结果

程序

代码

输出

Enter the decimal number: 123
1 1 1 1 0 1 1

说明

我们创建了一个名为 DecToBin( ) 的函数,该函数递归地将十进制数转换为二进制数。它会先检查数字是否大于 1。然后,它会递归调用 n // 2。然后,它将打印数字 (n % 2) 的二进制等效值。它会从用户那里获取数字并调用该函数,该函数将十进制数转换为二进制数。

方法 2:使用内置函数将十进制数转换为二进制数

算法

  1. 定义一个函数。
  2. 返回内置函数 bin.replace( )。
  3. 调用函数对象。
  4. 打印输出。

程序

代码

输出

Enter a decimal number : 123
1111011

说明

我们创建了一个名为 DecToBin( ) 的函数,该函数将十进制数转换为二进制数。然后,使用内置的 bin( ) 函数,我们将十进制数转换为二进制数。然后我们调用该函数并打印输出。

方法 3:使用内置的 format( ) 函数。

算法

  1. 定义一个函数。
  2. 使用 format( ) 函数,将十进制数转换为二进制数
  3. 调用函数
  4. 打印输出

程序

代码

输出

Enter a decimal number : 1445
10110100101

说明

我们创建了一个名为 DecToBin( ) 的函数,该函数将十进制数转换为二进制数。然后,我们使用格式函数和参数{0:b}。我们从用户那里获取输入并调用函数来打印输出。

或者我们可以用另一种方式使用格式函数

程序

代码

输出

Enter a decimal number : 198
11000110

说明

我们首先创建了 DecToBin() 函数来将十进制数转换为二进制数。然后,使用格式函数,我们将十进制数转换为二进制数。我们从用户那里获取输入并调用函数来打印输出。

方法 4:一行代码将十进制数转换为二进制数

算法

这是一行代码,用于将十进制数转换为二进制数。它也称为快速忍者方法。

程序

代码

输出

Enter a decimal number : 122345
11101110111101001

说明

我们使用了快速忍者方法将十进制数转换为二进制数。我们从用户那里获取输入,并使用 bin( ) 函数将十进制数转换为二进制数。

方法 5:使用按位移位运算符将十进制数转换为二进制数

算法

  1. 定义一个函数。
  2. 如果 num == 0,则返回 0
  3. 初始化一个 While 循环
  4. 使用按位移位运算符,将数字转换为二进制等效值
  5. 从用户处获取输入
  6. 调用函数
  7. 打印输出

代码

输出

Enter a decimal number : 1998
11111001110 

说明

我们创建了一个名为 DecToBin( ) 的函数,该函数将十进制数转换为二进制数。然后,我们初始化了一个 while 循环,在该循环中,使用按位右移运算符将十进制数转换为二进制数。然后,我们从用户那里获取输入并调用函数来打印输出。