蓝桥杯真题位运算
2023-12-31 15:54:00
位运算:对二进制进行操作的运算方式
????????与运算:有0得0
????????或运算:有1得1
????????异或运算:相同为0、不同为1取反
????????左移、右移
与运算&:有0则为0,全1为1
或运算|:有1则为1,全0为0?
?异或运算^:相同为0、不同为1
交换律: x^y=y ^x????????结合律: x ^(y ^z)=(x ^y)^z????????自反性: x^x=0
零元素: x^0=x????????逆运算: x^y =z,则有z^y=x(两边同时异或y,抵消掉)
取反~:1变成0、0变成1
左移<<:二进制表示向左移动指定位数?
每次左移一位,相当于乘上2
?右移>>:二进制表示向右移动指定位数
每次右移一位,相当于除以2
位运算技巧
判断是否为2的若干次方:?判断x&(x-1)是否等于0
因此2的若干次方二进制表示中只存在一个1,上述一定成立,并且上述成立时说明只有一个1
获取x的最低位的1:?Lowbit(x)= x&(-x)
?
x=int(input())
ans = 0
for i in range ( 32):
if(x >>i) & 1:
ans+=1
print(ans)
?
文章来源:https://blog.csdn.net/qq_64685283/article/details/135315627
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!