迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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

上一篇:在 Ubuntu 中卸载 Python

下一篇:没有了

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

本文地址:

相关文章

在 Ubuntu 中卸载 Python

发布时间:2023/06/27 浏览次数:157 分类:Python

本文演示如何从 Ubuntu 中删除或卸载 Python。检查你的系统中是否安装了Python 使用 Ctrl+Alt+T 打开终端。打开终端后,使用命令 python3 --version 检查您的系统是否安装了 python。

Python Teradata 连接

发布时间:2023/06/27 浏览次数:86 分类:Python

本文将讨论一些基本的正确准则,并在讨论连接方式之前了解 Teradata 模块的工作原理。Python 中的 Teradata 数据库 您可以使用 Python 和 Teradata 模块编写与 Teradata 数据库的强大交互脚本。

在 Python 中查找素因数

发布时间:2023/06/27 浏览次数:175 分类:Python

本篇文章将介绍如何在 Python 中执行素因数分解。质因数分解概述 在数学中,数字的因子是那些可以除以给定数字且余数为零的数字。

在 Python 中从 URL 中提取域

发布时间:2023/06/27 浏览次数:86 分类:Python

本文将通过实际例子来讲解Python的 urlparse() 函数从URL中解析并提取域名。 我们还将讨论提高解析 URL 和使用其不同组件的能力。使用 urlparse() 从 URL 中提取域

Python 中的省略号对象

发布时间:2023/06/27 浏览次数:158 分类:Python

本篇文章将介绍 Python 中省略号对象的使用。使用省略号作为未编写代码的占位符 省略号对象可以以不同的方式使用。 它主要充当未编写代码的占位符。

实现 Python Builder 模式的不同方法

发布时间:2023/06/27 浏览次数:70 分类:Python

构建器模式是一种允许对象的创建与其表示分离的模式。 这种模式可以创建和配置复杂的对象而无需继承,这是一种强大但不灵活的方法。

Python 中的互相关

发布时间:2023/06/27 浏览次数:81 分类:Python

互相关是一种重要的信号处理方法,用于分析具有不同滞后的两个信号之间的相似性。 您不仅可以了解两个信号的匹配程度,还可以获得它们最相似的时间点或索引。本文将讨论在 Python 中处理

使用 Python Timedelta 月份计算日期

发布时间:2023/06/27 浏览次数:128 分类:Python

在本篇文章中,我们将通过 timedelta 学习如何在 Python 中使用日期时间。 我们将了解如何计算当前日期或任何其他日期六个月后的日期。

Python MRO(方法解析顺序)

发布时间:2023/06/27 浏览次数:182 分类:Python

多重继承意味着单个子类可以继承多个类,并且子类将被授权访问属性和函数,除非它们不是该特定类的私有属性和函数。 MRO 技术用于搜索正在执行的类的顺序。在这篇文章中,我们将学习

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便