Python | 位运算

位运算(bitwise operations)是对整数在二进制位级别上的操作。在 Python 中,位运算符对数字的二进制表示进行操作。

Python 中的位运算符:

  1. 按位与(AND) &

    • 对应位都为 1 时,结果才为 1。

    例子:

    a = 5  # 二进制:101
    b = 3  # 二进制:011
    result = a & b  # 结果是 1,二进制:001
    print(result)  # 输出: 1
    
  2. 按位或(OR) |

    • 对应位只要有一个为 1,结果就为 1。

    例子:

    a = 5  # 二进制:101
    b = 3  # 二进制:011
    result = a | b  # 结果是 7,二进制:111
    print(result)  # 输出: 7
    
  3. 按位异或(XOR) ^

    • 对应位相同为 0,不同为 1。

    例子:

    a = 5  # 二进制:101
    b = 3  # 二进制:011
    result = a ^ b  # 结果是 6,二进制:110
    print(result)  # 输出: 6
    
  4. 按位取反(NOT) ~

    • 对每一位进行取反,0 变 1,1 变 0。
    • 由于 Python 使用的是二进制补码表示,取反后,负数的处理需要考虑补码的规则。

    例子:

    a = 5  # 二进制:101
    result = ~a  # 结果是 -6,二进制:...11111010(补码表示)
    print(result)  # 输出: -6
    
  5. 左移(Shift Left) <<

    • 将数字的二进制位向左移动指定的位数,右边补零。左移 n 位相当于将数字乘以 2^n

    例子:

    a = 5  # 二进制:101
    result = a << 1  # 结果是 10,二进制:1010
    print(result)  # 输出: 10
    
  6. 右移(Shift Right) >>

    • 将数字的二进制位向右移动指定的位数,左边补符号位(正数补 0,负数补 1)。右移 n 位相当于将数字除以 2^n

    例子:

    a = 5  # 二进制:101
    result = a >> 1  # 结果是 2,二进制:10
    print(result)  # 输出: 2
    

位运算的应用:

  1. 权限控制:位运算常用于表示和检查某些标志位,特别是在权限控制中。

    • 例如:如果你有一组权限 read=1, write=2, execute=4,可以使用位运算进行权限的组合与判断。
  2. 数据压缩:通过位运算来压缩数据,可以减少存储空间。

  3. 加密算法:某些加密算法使用位运算来增强加密强度。

  4. 图像处理:某些图像处理算法也会用到位运算来处理颜色通道、像素等数据。

总结:

位运算直接作用于整数的二进制表示,它们非常高效,适用于对整数进行低级的、高性能的处理。通常在需要优化性能或对底层硬件进行直接操作时使用。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务