python中位运算简述

1.位运算的特点:效率高,内存消耗少

2.位运算运算符:&(按位与)、|(按位或)、^(异或)、~(按位取反)、>>(右移)、<<(左移)

所有的位运算都是直接操作数据在内存中存储的补码

1)&(按位与)

数字1 & 数字2 - 两个都是1结果就是1,否则为结果为0。
01101101(补) & 10101100(补) -> 00101100(补)
特点某一位上的数和1与可以对这一位上的数进行保存,会对这一位进行置0操作。

print(5 & 9)
"""
5:00000101
9:00001001
5 & 9 = 00000001(补) = 1

-5: 10000101(原) - 11111011(补)
-9: 10001001(原) - 11110111(补)
-5 & -9 = 11110011(补)- 11110010(反) - 10001101(原) =  -13

"""
print(-5 & -9)

应用:判断数字的奇偶性
“”"
100101001101101 & 0000000000001
让被判断的数字和 1 进行按位与运算,结果如果是0说明是偶数否则是奇数。

print(100101001101101 & 1) #奇数
print(1230 & 1)  #偶数
2)|(按位或)

数字1 | 数字2 - 只要有一个是1就是1,两个都是1结果才是0.
例:

 7 | -16
print(7 | -16 )
3)^(异或)

数字1 ^ 数字2 - 不同为1,相同为0

print(18 ^ 9) #27
print(27 ^ 9) #18

异或两次会变为原值

4)~ (按位取反)

-0变1,1变0
~数字

5)>>,<<

数字1 >> 数字2 - 数字1 // 2数字2
数字1 << 数字2 - 数字1 * 2
数字2
应用:高效率、快速的乘2或者2的次方数

print(6 << 1) # 6 * 2**1
print(3 << 2) # 3 * 2**2
print(6 << 1) # 6 // 2**1
print(-7 >> 1) # -7 // 2**1

age = 18
age *= 2
age = age << 1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值