位运算符

Posted bzfsdr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位运算符相关的知识,希望对你有一定的参考价值。

1、&:与运算符

二进制比较,都为1则为1,否则为0

0=非=false,1=是=true

& 类比 &&,当&&的所有条件都满足是才为true,故推到出上述结果。

2、|:或运算符

二进制比较,只要有一个为1就是1,否则为0

与&类似

3、~:非运算符

二进制结果倒置,为0则1,1则0;

类比!

4、^:异或运算符

二进制比较,相同为0,不同为1

类比!=

5、<<:左移运算符

二进制,左移位数,低位补0

6、>>:右移运算符

二进制,右移位数

值为正,高位补0

值为负,高位补1

7、>>>:右移运算符

二进制,右移位数,无论正负高位都补0

 1 public static void main(String[] args) throws InterruptedException {
 2     // 11 1110 0111
 3     System.out.println(Integer.toBinaryString(999));
 4     // 1111 1111 1111 1111 1111 1100 0001 1001
 5     System.out.println(Integer.toBinaryString(-999));
 6     // 00 0001 1111
 7     System.out.println(Integer.toBinaryString(999 >>> 5));
 8     // 0000 0111 1111 1111 1111 1111 1110 0000
 9     System.out.println(Integer.toBinaryString(-999 >>> 5));
10     // 1 1111 0011 1000 0000
11     System.out.println(Integer.toBinaryString(999 << 7));
12     // 1111 1111 1111 1110 0000 1100 1000 0000
13     System.out.println(Integer.toBinaryString(-999 << 7));
14     // 0 0011 1110 0111
15     System.out.println(Integer.toBinaryString(999 >> 3));
16     // 1111 1111 1111 1111 1111 1111 1000 0011
17     System.out.println(Integer.toBinaryString(-999 >> 3));
18 }

技术图片

以上是关于位运算符的主要内容,如果未能解决你的问题,请参考以下文章

20个简洁的 JS 代码片段

20个简洁的 JS 代码片段

编程思想:巧用位运算重构代码

优雅代码05-从hashMap源码介绍位运算符

位运算相关

为啥 JSHint 反对位运算符?我应该如何表达这个代码?