Python中的位运算符及其应用

Python中的位运算符主要有:按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移位(<>),下面将详细介绍这些运算符的使用及应用。

一、按位与(&)

按位与(&)的运算规则是将两个数的二进制相同位上的数字进行”与”操作,即都为1,结果才为1,否则为0。例如:

a = 60    # 60的二进制为 0011 1100
b = 13    # 13的二进制为 0000 1101
c = a & b # 12的二进制为 0000 1100
print("c的值为:", c)

上述代码中,结果为12,是因为60的二进制为0011 1100,13的二进制为0000 1101,对应位置上的数字都为1的只有第4个和第5个,因此得到的结果为0000 1100,即十进制的12。

按位与的应用场景:通过按位与的操作,可以将一个数的某些位设为0,例如通过将0b11110000进行按位与0b00111111的操作可以将前四位清零。

二、按位或(|)

按位或(|)的运算规则是将两个数的二进制相同位上的数字进行”或”操作,即有一个为1,结果为1,否则为0。例如:

a = 60    # 60的二进制为 0011 1100
b = 13    # 13的二进制为 0000 1101
c = a | b # 61的二进制为 0011 1101
print("c的值为:", c)

上述代码中,结果为61,是因为60的二进制为0011 1100,13的二进制为0000 1101,对应位置上的数字都为0的只有第6个,因此得到的结果为0011 1101,即十进制的61。

按位或的应用场景:通过按位或的操作,可以将一个数的某些位设为1,例如通过将0b00001111进行按位或0b11000000的操作可以将后四位设为1。

三、按位异或(^)

按位异或(^)的运算规则是将两个数的二进制相同位上的数字进行”异或”操作,即相同为0,不同为1。例如:

a = 60    # 60的二进制为 0011 1100
b = 13    # 13的二进制为 0000 1101
c = a ^ b # 49的二进制为 0011 0001
print("c的值为:", c)

上述代码中,结果为49,是因为60的二进制为0011 1100,13的二进制为0000 1101,对应位置上的数字都不同的只有第1个、第2个、第3个、第4个和第5个,因此得到的结果为0011 0001,即十进制的49。

按位异或的应用场景:通过按位异或的操作,可以将一个数的某些位取反,例如将0b10011010进行按位异或0b11111111的操作可以将这个数字中的所有位取反。

四、按位取反(~)

按位取反(~)的运算规则是将一个数的二进制码按位取反,即0变1,1变0。例如:

a = 60    # 60的二进制为 0011 1100
b = ~a     # -61
print("b的值为:", b)

上述代码中,结果为-61,是因为60的二进制为0011 1100,按位取反后变为1100 0011,再转换成十进制表示为-61。

按位取反的应用场景:按位取反一般用于补码的运算。在计算机中,负数是以补码的形式存储的。按位取反后再加上1,即可得到负数的原码。

五、左移位(<<)

左移位(<<)的运算规则是将一个数的二进制码向左移动指定的位数,移动后空出的位补0。例如:

a = 15    # 15的二进制为 0000 1111
b = a << 2 # 60的二进制为 0011 1100
print("b的值为:", b)

上述代码中,结果为60,是因为15的二进制为0000 1111,向左移动两位后变为0011 1100,即十进制的60。

左移位的应用场景:通过左移位的操作,可以将一个数乘以2的整数次方,例如将0b00001111进行左移位2位的操作可以将这个数字乘以4。

六、右移位(>>)

右移位(>>)的运算规则是将一个数的二进制码向右移动指定的位数,移动后空出的位补0。例如:

a = 60    # 60的二进制为 0011 1100
b = a >> 2 # 15的二进制为 0000 1111
print("b的值为:", b)

上述代码中,结果为15,是因为60的二进制为0011 1100,向右移动两位后变为0000 1111,即十进制的15。

右移位的应用场景:通过右移位的操作,可以将一个数除以2的整数次方,例如将0b11110000进行右移位2位的操作可以将这个数字除以4。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/190586.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-29 22:34
下一篇 2024-11-30 09:05

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29

发表回复

登录后才能评论