Python系列(17)—— 位运算符

简介: Python系列(17)—— 位运算符

Python中的位运算符(Bitwise Operator)

一、引言

位运算符是直接对整数的二进制位进行操作的运算符。在Python中,位运算符可以对整数进行位级别的运算,如按位与(AND)、按位或(OR)、按位异或(XOR)、按位取反(NOT)等。这些运算符在底层系统编程、算法优化、网络通信等领域有广泛的应用。

二、位运算符介绍

  1. 按位与(&):对应位都为1时,结果位才为1,否则为0。
  2. 按位或(|):对应位只要有1,结果位就为1,否则为0。
  3. 按位异或(^):对应位不同时为1,相同时为0。
  4. 按位取反(~):对整数的二进制位取反,即0变为1,1变为0。
  5. 左移(<<):将数字的二进制表示向左移动指定的位数,右边用0填充。
  6. 右移(>>):将数字的二进制表示向右移动指定的位数,左边根据符号位填充(正数填充0,负数填充1)。

三、代码实例

下面通过几个示例来展示Python中位运算符的使用。

  1. 按位与(&)
a = 60  # 二进制表示:0011 1100
b = 13  # 二进制表示:0000 1101
# 使用按位与运算
result = a & b
print(result)  # 输出:12,二进制表示:0000 1100
  1. 按位或(|)
a = 60  # 二进制表示:0011 1100
b = 13  # 二进制表示:0000 1101
# 使用按位或运算
result = a | b
print(result)  # 输出:61,二进制表示:0011 1101
  1. 按位异或(^)
a = 60  # 二进制表示:0011 1100
b = 13  # 二进制表示:0000 1101
# 使用按位异或运算
result = a ^ b
print(result)  # 输出:49,二进制表示:0011 0001
  1. 按位取反(~)
a = 60  # 二进制表示:0011 1100
# 使用按位取反运算
result = ~a
print(result)  # 输出:-61,二进制表示:1100 0011(补码表示)
  1. 左移(<<)
a = 6  # 二进制表示:0000 0110
# 使用左移运算,将a的二进制表示向左移动2位
result = a << 2
print(result)  # 输出:24,二进制表示:0001 1000
  1. 右移(>>)
a = 10  # 二进制表示:0000 1010
# 使用右移运算,将a的二进制表示向右移动1位
result = a >> 1
print(result)  # 输出:5,二进制表示:0000 0101

四、总结

位运算符在Python编程中不常用,但在某些特定场景下(如底层系统编程、算法优化等)非常有用。通过掌握位运算符,可以更深入地理解计算机底层的数据表示和操作方式,提高编程能力和算法效率。

相关文章
|
5月前
|
数据安全/隐私保护 Python
Python中位运算符的用法
Python中位运算符的用法
52 0
|
5月前
|
Python 算法 Java
Python每日一练(20230417) 最大间距、Z字形变换、买卖股票最佳时机II
Python每日一练(20230417) 最大间距、Z字形变换、买卖股票最佳时机II
42 0
Python每日一练(20230417) 最大间距、Z字形变换、买卖股票最佳时机II
|
Python
【从零学习python 】08.Python了解位运算符, 运算符优先级
【从零学习python 】08.Python了解位运算符, 运算符优先级
73 0
|
运维 算法 Linux
Python编程 位运算符
本章将会讲解如何使用Python运算符中的位运算符。
122 1
Python编程 位运算符
|
JavaScript PHP Python
PHP、JS、Python逻辑运算符||和位运算符|
PHP、JS、Python逻辑运算符||和位运算符|
112 0
PHP、JS、Python逻辑运算符||和位运算符|
|
Java Python
说说Python中的6种位运算符?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!
123 0
|
JavaScript PHP Python
PHP、JS、Python逻辑运算符||和位运算符|
PHP、JS、Python逻辑运算符||和位运算符|
104 0
|
Python
Python位运算符
a = 0011 1100 b = 0000 1101 a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011 ...
764 0
|
4天前
|
数据挖掘 索引 Python
Python数据挖掘编程基础3
字典在数学上是一个映射,类似列表但使用自定义键而非数字索引,键在整个字典中必须唯一。可以通过直接赋值、`dict`函数或`dict.fromkeys`创建字典,并通过键访问元素。集合是一种不重复且无序的数据结构,可通过花括号或`set`函数创建,支持并集、交集、差集和对称差集等运算。
14 9
|
3天前
|
存储 开发者 Python
探索Python编程的奥秘
【9月更文挑战第29天】本文将带你走进Python的世界,通过深入浅出的方式,解析Python编程的基本概念和核心特性。我们将一起探讨变量、数据类型、控制结构、函数等基础知识,并通过实际代码示例,让你更好地理解和掌握Python编程。无论你是编程新手,还是有一定基础的开发者,都能在这篇文章中找到新的启示和收获。让我们一起探索Python编程的奥秘,开启编程之旅吧!
下一篇
无影云桌面