Python 中的位掩码简介
本篇文章介绍了 Python 中的位掩码,并演示了如何使用按位运算符(例如 AND、OR、NOT 等)执行位掩码。
Python 中的位掩码简介
位掩码是几乎所有编程语言的通用概念; 基本上,它只是一个变量,可以帮助您进行按位运算,并有助于深入理解和操作值的位,比如说整数值。
它还有助于将值压缩为更小、更高效的版本,从而减少内存使用和位操作。 在计算机中,每条数据或信息都以较低级别的位存储。
该位只能处于两种状态,0(假)或 1(真),特定的组合具有特定的含义。
让我们看一个例子来理解 Python 中的位掩码概念。
# convert 8 into binary format --> 1000
bindata = format(8, "b")
print(bindata)
输出:
1000
在上面的示例中,我们将十进制整数 8 转换为二进制形式,相当于 1000。现在,我们可以更深入地与 8 进行交互并操作它的每一位。
这就是位掩码概念的用武之地。 但是,首先让我们看一个如何与二进制位交互的示例。
示例代码:
bin_a = int(format(8, "b")) # 1000
bin_b = int(format(1, "b")) # 0001 or 1
# 1000 (8)
# 0001 (1) OR (|) Bitwise Operator
# -----
# 1001 (9)
print(f"bin_ a = {bin_a}")
print(f"bin_ b = {bin_b}")
print(f"The OR (SUM) of bin_a and bin_b = {(bin_a | bin_b)}")
输出:
bin_ a = 1000
bin_ b = 1
The OR (SUM) of bin_a and bin_b = 1001
在上面的代码栅栏中,我们使用了按位运算符OR表示为|,它用于将二进制值逐位相加。
Python 中的按位运算符
位运算符执行任何整数类型short、byte、long、char、int 等的逐位运算。有不同的位运算符,每个都有特定的用例。
- 按位或|
- 按位与&
- 按位异或 ^
- 按位求补 ~
OR 运算符是一种按位运算符,表示为 |,它对两个或多个值进行逐位操作,并在至少一个值为 true 或 false 时返回 true。
以下是两个值的 OR (|
) 的基本结构:
A | B | A | B |
---|---|---|
1 (True) | 1 (True) | 1 (True) |
0 (False) | 0 (False) | 0 (False) |
1 (True) | 0 (False) | 1 (True) |
0 (False) | 1 (True) | 1 (True) |
示例代码:
### Bitwise operator OR (|)
a = int(format(5, "b")) # 101
b = int(format(4, "b")) # 100
# 101 (5)
# 100 (4) OR (|) Bitwise Operator
# ------
# 101 (5)
print(f"a = {a}\nb = {b}")
print("a & b = ", (a | b)) # 101
输出:
a = 101
b = 100
a & b = 101
AND 运算符是按位运算符,表示为 &
,它对两个或多个值进行逐位计算,如果两个值都为 true,则返回 true; 否则为假。
这是两个值的 AND (&) 的基本结构:
A | B | A & B |
---|---|---|
1 (True) | 1 (True) | 1 (True) |
0 (False) | 0 (False) | 0 (False) |
1 (True) | 0 (False) | 1 (False) |
0 (False) | 1 (True) | 0 (False) |
示例代码
# Bitwise operator AND (&)
a = int(format(5, "b")) # 101
b = int(format(4, "b")) # 100
# 101 (5)
# 100 (4) AND (&) Bitwise Operator
# -----
# 100 (4)
print(f"a = {a}\nb = {b}")
print("a & b = ", (a & b)) # 100
输出:
a = 101
b = 100
a & b = 100
它是一个二元运算符,用^表示,当给定的两个值相同时,无论是true还是false,它都返回false; 否则,它将返回true。
XOR运算符的基本结构如下:
A | B | A ^ B |
---|---|---|
1 (True) | 1 (True) | 0 (False) |
0 (False) | 0 (False) | 0 (False) |
1 (True) | 0 (False) | 1 (True) |
0 (False) | 1 (True) | 1 (True) |
示例代码
# Bitwise operator XOR (^)
a = int(format(7, "b")) # 101
b = int(format(4, "b")) # 100
# 111 (7)
# 100 (4) XOR (^) Bitwise Operator
# ------
# 011 (3)
print(f"a = {a}\nb = {b}")
print("a ^ b = ", (a ^ b)) # 011 or 11
输出:
a = 111
b = 100
a ^ b = 11
按位求补 (~
) 是一个一元运算符,称为 NOT 运算符。 NOT 运算符反转值的位模式。
NOT 运算符的基本结构是:
A | ~A |
---|---|
1 (True) | 0 (False) |
0 (False) | 1 (True) |
让我们通过下面的例子来了解 NOT (~
) 的概念。
# Bitwise operator NOT (~)
a = int(format(0, "b"))
print(f"a = {a}")
print(f"The Complement of a = {~a}")
输出:
a = 0
The Complement of a = -1
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串