python的位运算

Python 中提供了一组位运算符用于操作整数的二进制表示。以下是所有的位运算符及其功能:

  1. 按位与 (&): 对应位置都为1,则结果为1,否则为0。

    a = 5       # 二进制: 0101
    b = 3       # 二进制: 0011
    result = a & b  # 结果: 0001
    print(result)  # 输出: 1
    
    
  2. 按位或 (|): 对应位置只要有一个为1,则结果为1,否则为0。

    a = 5       # 二进制: 0101
    b = 3       # 二进制: 0011
    result = a | b  # 结果: 0111
    print(result)  # 输出: 7
    
    
  3. 按位异或 (^): 对应位置相同则为0,不同则为1。

    a = 5       # 二进制: 0101
    b = 3       # 二进制: 0011
    result = a ^ b  # 结果: 0110
    print(result)  # 输出: 6
    
    
  4. 按位取反 (~): 对每个比特取反,0变1,1变0(结果是该数的补码)。

    a = 5       # 二进制: 0101
    result = ~a  # 结果: 1010 (在二进制补码表示中,这实际上是 -6)
    print(result)  # 输出: -6
    
    
  5. 左移 (<<): 将左操作数的二进制表示向左移动右操作数指定的位数,右侧用零填充。

    a = 5       # 二进制: 0101
    result = a << 1  # 结果: 1010
    print(result)  # 输出: 10
    
    
  6. 右移 (>>): 将左操作数的二进制表示向右移动右操作数指定的位数,左侧用符号位填充(对于有符号数)。

    a = 5       # 二进制: 0101
    result = a >> 1  # 结果: 0010
    print(result)  # 输出: 2
    
    

以下是一个表格汇总了这些位运算符:

运算符名称示例结果
&按位与5 & 31
``按位或`5
^按位异或5 ^ 36
~按位取反~5-6
<<左移5 << 110
>>右移5 >> 12

示例代码

以下是一个示例代码,展示了所有位运算符的使用:

a = 5  # 二进制: 0101
b = 3  # 二进制: 0011

# 按位与
result_and = a & b
print(f"{a} & {b} = {result_and}")  # 输出: 1

# 按位或
result_or = a | b
print(f"{a} | {b} = {result_or}")  # 输出: 7

# 按位异或
result_xor = a ^ b
print(f"{a} ^ {b} = {result_xor}")  # 输出: 6

# 按位取反
result_not = ~a
print(f"~{a} = {result_not}")  # 输出: -6

# 左移
result_left_shift = a << 1
print(f"{a} << 1 = {result_left_shift}")  # 输出: 10

# 右移
result_right_shift = a >> 1
print(f"{a} >> 1 = {result_right_shift}")  # 输出: 2

这些位运算符在处理底层数据操作、二进制数据解析和某些算法优化中非常有用。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值