位操作符的运用

2021-07-18  本文已影响0人  慕尼黑凌晨四点
操作符 描述 运算规则
位与 如果相对应位都是1,则结果为1,否则为0
| 位或 如果相对应位都是 0,则结果为 0,否则为 1
^ 位异或 如果相对应位值相同,则结果为0,否则为1
位非 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
<< 左移 按位左移运算符。左操作数按位左移右操作数指定的位数。
>> 右移 按位右移运算符。左操作数按位右移右操作数指定的位数。
>>> 无符号右移 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

<<n: 乘以2的n次方

>>n:除以2的n次方,取整数部分。

1位: ~1 = 0;
2位 ~01 = 10 = -1 ~10 = 01 = 1
3位 ~001 = 110 = -1 ~010 = 101 = -3
4位 ~0001 = 1110 = -1 ~0010 = 1101 = -3

x的位非结果为:-x-1

for (int i = 0; i < 10; i++) {
    System.out.println(i & ~1);
}

//输出: 0 0 2 2 4 4 6 6 8 8
for (int i = 0; i < 10; i++) {
    System.out.println(i & 1);
}
//输出:0 1 0 1 0 1

可以用if ((a & 1) == 0) 代替 if (a % 2 == 0)来判断a是不是偶数。

上一篇 下一篇

猜你喜欢

热点阅读