位与运算符的运用和区别
1.&(与运算符)
都是1则返回1 反之则为0
二进制转为十进制1
0001 1011 => 27
0101 0101 => 85
27 & 85=> 0001 0001 =>16+1=17
2.|(或运算符)
两边都是0则返回0 其他情况则是1
0001 1011 => 27
0101 0101 => 85
27 | 85 => 0101 1111=>1+2+4+8+16+64=>95
3.~(非运算符)
0000 0000 0000 0000 0000 0000 0000 0011 -> 3
1111 1111 1111 1111 1111 1111 1111 1100 -> ~ 3 = -4
4.^(非运算符)
^(亦或)当运算符两边相同位置都是相同,结果返回0,不相同时返回1。
1)、判断奇偶数
我们可以利用 & 运算符的特性,来判断二进制数第一位是0还是1。
用if ((a & 1) == 0) 代替 if (a % 2 == 0)来判断a是不是偶数。
2、交换两个数
a ^= b;
b ^= a;
a ^= b;
3、取余数
比如说我们要让a对16进行取余,那么就可以让 a & 15 得出来的结果就是余数。
4其他简单应用
- 求相反数:
~a + 1
- 求绝对值:
a >> 31 == 0 ? a : (~a + 1)
JavaScript JS中的逻辑位运算符和移位运算符
Java中的移位运算符
- ☺ ↩
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。