python十进制转二进制方法详解
在 Python中,十进制数可以转换成二进制数。例如: 但是,十进制数不是直接转换成二进制,而是先转换成二进制数,再转换成十进制。接下来我们来看看具体的实现方法: 首先我们来看一个例子: 上面代码中,使用了循环遍历的方法。从这个例子中我们可以发现,需要遍历一次。因为每个数字都是16个位,所以一共需要遍历64次。在 Python中,使用循环的方式实现需要遍历一次的代码如下: 因此,可以看到第一行的代码使用了循环遍历的方法实现了16次遍历,第二行使用了二进制遍历的方法实现了16次遍历。 因此我们可以看到,只需要用两行代码就完成了一次循环遍历。
-
一、十进制数转换成二进制
这里使用的方法是 float (),因为这种方法只需要在数组的最后面放上一个数,就可以对这个数进行转换。下面是一个例子: 第一行:输入十进制数字0到9,输出二进制数字0到9。上面的代码使用的是 float ()方法来实现十进制转二进制的。这里使用了一个方法 float ()来对转换后的二进制数据进行处理。 在上面的代码中用了三个方法来对数据进行处理: 使用 float ()方法转换后得到的二进制数据是16位,因此需要将其转换成二进制数后再进行存储。 使用 float ()方法将16位的二进制数转换成了10位的二进制数。
-
二、循环遍历
循环遍历的实现原理是:一个字符串如果出现了两次,就会被重复执行,直到出现第三次为止。 但是这里出现了一个问题:为什么要在第二行中使用循环遍历呢? 这是因为:我们在第一行中使用了循环遍历的方式,这里只需要用到第一行中的第一个字符串就可以实现16次遍历。但是,我们还需要先把第二行的第二个字符串也加进来。 因此,这里的第二个字符串必须要加进来。 当然,也可以使用二进制遍历的方法实现循环遍历:
-
十进制转二进制
既然十进制转二进制是循环遍历,那么我们可以直接用循环的方式来实现十进制转二进制。在上面的例子中,我们只需要把第二行的第二个字符串也加进来就可以了,但是在上面的例子中,我们还需要把第二行的第一个字符串也加进来。因为这里要将十进制转二进制,所以我们需要用到第二行第一个字符串: 这就是循环遍历了,接下来我们通过 if语句来实现循环遍历: 在这个例子中,我们使用了 if语句来判断第二行的第一个字符串是否为0,如果为0的话,则进入循环遍历;如果不是0的话,则把第二行的第二个字符串也加进来。
-
-
三、使用二进制数据
十进制数转换成二进制数的方法,我们可以使用下面的方法进行尝试: 上面代码中,使用了循环遍历的方法,一共需要遍历16次,最后使用了二进制的方法,只需要两行代码就可以完成。如果我们想要遍历更多的次数,也可以使用循环遍历和二进制遍历两种方法结合使用。可以看到,通过上面两种方法,一共遍历了16次,最终只需要遍历4次。因此上面两种方法的使用技巧是: 第一种方法使用循环遍历的方法对数据进行遍历;第二种方法是先用二进制遍历一次,再用循环遍历一次。 通过上面代码可以看到,虽然十进制数转换成二进制数据后需要遍历64次,但是我们可以通过下面两种方法结合起来使用。 首先是使用循环遍历的方法对数据进行遍历。因为数据是16位的二进制数,所以每遍历一次需要遍历第2位,也就是16-2=12。 但是如果采用二进制算法对数据进行遍历的话,就可以只遍历第1-32位了。 由于上面两种方法都可以使用循环的方式实现对数据的遍历,因此我们也可以用循环的方式对16个位数进行遍历。
-
四、使用十进制数组
对于十进制数,可以使用十个十进制数来组成一个数组。这样的数组可能是以1开头,也可能是以0开头,但都是以1开始,并且不会重复。从上面的代码中可以看到,这个数组由4个数组成,其中每个数都包含了两个十进制数字:0和1。
常用的python十进制转二进制代码:
使用内置函数bin()将十进制数转换为二进制数:
```python
decimal_num = 10
binary_num = bin(decimal_num)
print(binary_num)
```
输出结果为:`0b1010`
2. 使用位运算符将十进制数转换为二进制数:
```python
decimal_num = 10
binary_num = ""
while decimal_num > 0:
binary_num = str(decimal_num % 2) + binary_num
decimal_num //= 2
print(binary_num)
```
输出结果为:`1010`
3. 使用format()函数将十进制数转换为二进制数:
```python
decimal_num = 10
binary_num = "{0:b}".format(decimal_num)
print(binary_num)
```
输出结果为:`1010`
来源地址:https://blog.csdn.net/qq_42751978/article/details/129872389
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341