相关文章,配合食用:
Java中去除整数二进制的最后一个1(位操作)
位运算是执行效率非常高的运算,刷题中,有时候使用会有奇效。但位运算还是不太好理解的,这里记录两个常用的位运算。
n&1
n&1
:与操作,判断 n 二进制最右一位是否为 1
。
// 若等于1,表示最右一位是1;
// 否则是0.
if ((n & 1) == 1) {
...
}
记得判断中的括号
不能省略,否则会优先运算1==1
,导致报错。
n&1
常用来判断n是奇数还是偶数
。
if (n & 1) == 1):
n为奇数
if (n & 1) == 0):
n为偶数
n>>1
n>>1
:移位操作,删除
n二进制的最右一位。
n = n>>1;
// 简写如下
n >>= 1;