刷LeetCode看到评论区有人回复
奇偶判断
s.length()&1
仔细思考我终于懂了,把数字以二进制的形式展示后,只需要判断最后一个二进制位是 1 还是 0 。如果是 1 的话,代表是奇数,如果是 0 则代表是偶数,
以11为例:
奇偶判断代码如下:
public void judge(int i){
if ((i&1)==1){
System.out.println(i+"是奇数");
}else{
System.out.println(i+"是偶数");
}
}
常用位运算符:
位与运算符(&)
运算规则:两个数都转为二进制,然后从高位开始比较,如果两个数都为1则为1,否则为0。
位或运算符(|)
运算规则:两个数都转为二进制,然后从高位开始比较,两个数只要有一个为1则为1,否则就为0。
位异或运算(^)
运算规则是:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1。
位非运算符(~)
运算规则:如果位为0,结果是1,如果位为1,结果是0.
<<(左移)
>>(带符号右移)
>>>(无符号右移)