特别的二进制运算
## 快速求2的n次幂
print(10>>1)
print(13>>1)
print(13<<1)
print(-3<<1)
print(1<<10) # 快速求2的n次幂
print(1<<4) # 快速求2的n次幂
# print(-0.6<<1) # 这个无法运算
'''
检验奇偶性
'''
x = 11 # 8+2+1 ==>1011
if (x & 1) == 0:
print( 'x是偶数')
else:
print( 'x是奇数')
'''
交换两个元素'''
a, b = 1, 2
a ^= b
b ^= a
a ^= b
print(a, b)
'''
快速求余数,除数C刚好是2的n次幂才有效
'''
C = 1 << 10
X = 123456789
r1 = x % C
r2 = x & (C - 1)
print(r1, r2)
'''
找出只出现1次的数
a = 88
a ^ a = 0 任何数和他本身做位异或运算等于0
a ^ 0 = a 任何数和0做位异或运算等于本身
'''
## 找出列表中只出现一次的数
arr =[20,30,20,10,10]
ret = arr[0]
for i in range(1,len(arr)):
ret ^= arr[i]
print('这是i',i)
print(ret)
'''
利用位运算进行简单加密
'''
x = 1346852
key = 23333333333
encrypt = x ^ key
print(encrypt)
decrypt = encrypt ^ key
print(decrypt)
'''
获取某个数的二进制第k位
'''
#1001
a = 9
k = 3
print((a & (1 << k)) >> k)
k = 2
print((a & (1 << k)) >>k)
'''
将二进制的第k位设置为1
'''
a= 1 <<10
k = 3
a = (a | (1 << k))
print(a)
写入自己的博客中才能记得长久
分类:
底层原理
, Python高级编程技巧实战
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2022-08-14 repr方法和float类型 数字e的使用
2022-08-14 从1到4选出不重复的3个数组成,能有多少种组合