位运算符
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 }
以上是关于位运算符的主要内容,如果未能解决你的问题,请参考以下文章