大话 Python:python 基础巩固 -- 位运算的奥妙

大话 Python:python 基础巩固 -- 位运算的奥妙,第1张

概述 位运算是直接对内存中的二进制位进行 *** 作,因此,它的运算效率相比一般的数学运算是比较高的。一般情况下,位运算主要分为六种:与运算、或运算、异或运算、取反运算、左移运算、右移运算。在开始之前,先介绍一下将十进制转换成二进制的方法。为节约篇幅说明后面的内容,此处我们直接使用

 

位运算是直接对内存中的二进制位进行 *** 作,因此,它的运算效率相比一般的数学运算是比较高的。一般情况下,位运算主要分为六种:与运算、或运算、异或运算、取反运算、左移运算、右移运算。

在开始之前,先介绍一下将十进制转换成二进制的方法。为节约篇幅说明后面的内容,此处我们直接使用 python 内置的 bin() 函数将整数转换为二进制。

注意:若 *** 作系统为32位,则二进制根据位数补全32位即可,以下用低位说明问题,如 10 的二进制计算出为 1010,则补全32位应为 00000000000000000000000000001010。

 

 1def toBin(num):
2   # 十进制转换成二进制
3   res = bin(int(num))
4   # 去掉前两位,因为内置函数转换后前面两个字符是0b
5   return res[2:]
6
7if __name__ == '__main__':
8   print toBin(10)
9   结果10的二进制是1010
10   print toBin(8)
11   结果8的二进制是1000
12   根据二进制“或”的计算规则:对应的两个二进位有一个为1时结果位就为1,否则为0
13   对比结果:1010 转为10进制也就是10
14   print 10 | 8
15   10
3、异或运算
 1def toBin(num):
2   # 十进制转换成二进制
3   res = bin(int(num))
4   # 去掉前两位,因为内置函数转换后前面两个字符是0b
5   return res[2:]
6
7if __name__ == '__main__':
8   print toBin(10)
9   结果10的二进制是1010
10   根据二进制“左移”的计算规则:将位数将左移动,遵循低位补0、高位丢弃
11   向左移动一位
12   对比结果:01010 转为10进制也就是20
13   print 10 << 1
14   20
6、右移运算

 

Python 集中营

分享编程技术、还原编程思想

原创技术|编程实战|学习社区

 

总结

以上是内存溢出为你收集整理的大话 Python:python 基础巩固 -- 位运算的奥妙全部内容,希望文章能够帮你解决大话 Python:python 基础巩固 -- 位运算的奥妙所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1185743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存