位运算符

作者: 简通 | 来源:发表于2023-07-04 21:58 被阅读0次

1. 什么是位运算符?

位运算符是一种用于对二进制数进行操作的运算符。它们直接对二进制位进行操作,因此在处理底层数据和位掩码时非常有用。

2. 为什么使用位运算符?

位运算符可以在某些情况下提供更高效的解决方案,特别是在处理大量数据或需要对二进制位进行操作的情况下。它们可以用于位操作、位掩码、位移等。

3. 位运算符的种类

3.1 按位与(&)

按位与运算符(&)对两个操作数的每个对应位执行逻辑与操作。如果两个位都为1,则结果为1,否则为0。

a = 5  # 二进制表示为 0101
b = 3  # 二进制表示为 0011
result = a & b  # 二进制表示为 0001,即1
print(result)  # 输出 1

3.2 按位或(|)

按位或运算符(|)对两个操作数的每个对应位执行逻辑或操作。如果两个位中至少有一个为1,则结果为1,否则为0。

a = 5  # 二进制表示为 0101
b = 3  # 二进制表示为 0011
result = a | b  # 二进制表示为 0111,即7
print(result)  # 输出 7

3.3 按位异或(^)

按位异或运算符(^)对两个操作数的每个对应位执行逻辑异或操作。如果两个位不相同,则结果为1,否则为0。

a = 5  # 二进制表示为 0101
b = 3  # 二进制表示为 0011
result = a ^ b  # 二进制表示为 0110,即6
print(result)  # 输出 6

3.4 按位取反(~)

按位取反运算符(~)对操作数的每个位执行逻辑非操作。将每个位0变为1,1变为0。

a = 5  # 二进制表示为 0101
result = ~a  # 二进制表示为 1010,即-6
print(result)  # 输出 -6

3.5 左移(<<)

左移运算符(<<)将一个数的二进制位向左移动指定的位数。右侧空出的位用0填充。

a = 5  # 二进制表示为 0101
result = a << 2  # 二进制表示为 010100,即20
print(result)  # 输出 20

3.6 右移(>>)

右移运算符(>>)将一个数的二进制位向右移动指定的位数。左侧空出的位用0填充。

a = 5  # 二进制表示为 0101
result = a >> 2  # 二进制表示为 01,即1
print(result)  # 输出 1

4. 位运算符的应用案例

4.1 判断奇偶数

通过使用位运算符,可以快速判断一个数是奇数还是偶数。奇数的二进制表示的最后一位为1,偶数的二进制表示的最后一位为0。

def is_even(num):
    return num & 1 == 0

print(is_even(5))  # 输出 False
print(is_even(8))  # 输出 True

4.2 交换变量的值

使用位异或运算符可以在不使用额外变量的情况下交换两个变量的值。

a = 5
b = 3

a = a ^ b
b = a ^ b
a = a ^ b

print(a)  # 输出 3
print(b)  # 输出 5

4.3 判断是否为2的幂次方

通过位运算符,可以快速判断一个数是否为2的幂次方。2的幂次方的二进制表示只有一位为1,其余位都为0。

def is_power_of_two(num):
    return num & (num - 1) == 0

print(is_power_of_two(4))  # 输出 True
print(is_power_of_two(6))  # 输出 False

相关文章

  • 强大的位运算符

    位取反运算符 位取反运算符(~)是对所有位的数字进行取反操作位取反运算符.png 位与运算符 位与运算符(&)可以...

  • 开发基础随笔之位运算符(Bitwise Operators)

    位运算符,属于算术运算符 按位逻辑运算符: 位移运算符: 位运算符的运算数只能是整数 位移运算符:按位左移 a<<...

  • 位运算符

    位取反运算符 位取反运算符(~)是对所有位的数字进行取反操作 位与运算符 位与运算符(&)可以对两个数的比特位进行...

  • 基础运算符

    [使1. 按位与运算符(&](#1. 按位与运算符(&)[按位或运算符 | ](#2. 按位或运算符(|)) 1....

  • python学习第二天 基础知识二

    运算符 +、-、、/、//(整除)、*(幂运算符)、%(取余) 输出结果 位运算符 &位与,|位或,左移<<,右移...

  • 高级运算符(Advanced Operators)

    目录 [toc] 位运算符 1. 按位取反运算符~ 2. 按位与运算符& 3. 按位或运算符| 4. 按位异或运算...

  • python运算符

    Python算数运算符 Python比较运算符 Python赋值运算符 Python位运算符 按位运算符是把数字看...

  • 位运算符

    位取反运算符 取反翻运算符 ~ 是对所有位的数字进行取反操作0 变 11 变 0 位与运算符 位与运算符 & 可以...

  • Python基础之位运算符(含原码反码补码的通俗解释)

    目录 1 二进制 2 原码、反码、补码 3 位运算符 4 位运算符使用技巧 上回学习运算符时,漏了位运算符,因为位...

  • swift-位运算符

    1. 位取反运算符( ~ ) 位取反运算符(~ )是对所有位的数字进行取反操作 2. 位与运算符( &) 位与运算...

网友评论

    本文标题:位运算符

    本文链接:https://www.haomeiwen.com/subject/zydtudtx.html