迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 中的位掩码简介

作者:迹忆客 最近更新:2023/06/27 浏览次数:

本篇文章介绍了 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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便