java位运算

2的k次方 :

1<<k
c++符合,java符合
都可以用变量和常数

在这里插入图片描述
在这里插入图片描述

取变量i二进制的第k位(位数从右向左从0开始)

(i>>k)&1 //k=0的时候就是最低位
在这里插入图片描述

在这里插入图片描述

整数除以2

java 和 c++ 不用加括号,因为移位运算符的优先级很低
在这里插入图片描述

lowbit(x)

lowbit(x)=x&-x=2^k;
//(k是x末尾连续0的个数,例如4末尾两个0,lowbit(4)=2^2=4)

//也可以理解为x的最后一位1的权重

x& (x-1)

可以将x中的最后一位1移除
eg: 6&5=4

posted @ 2022-11-17 23:04  林动  阅读(19)  评论(0编辑  收藏  举报