java中按位运算

一、位与&:

对应的二进制位进行与操作,两个都为1才为1,其他情况均为0

测试: 

System.out.println(5&6); 

打印:4 

过程: 

5表示成:0000 0000 0000 0000 0000 0000 0000 0101 

6表示成:0000 0000 0000 0000 0000 0000 0000 0110 

进行 & :0000 0000 0000 0000 0000 0000 0000 0100 

得到:4


二、位或|:

|操作符,对应的二进制位进行或操作,两个都为0才为0,其他情况均为1 

测试: 

System.out.println(5|6); 

打印:7 

过程: 

5表示成:0000 0000 0000 0000 0000 0000 0000 0101 

6表示成:0000 0000 0000 0000 0000 0000 0000 0110 

进行 | :0000 0000 0000 0000 0000 0000 0000 0111 

得到:7 

三、位异或^:

^操作符 当对应二进制位值相同,该位为0 否则为1 

测试: 

System.out.println(5^6); 

打印:3 

过程: 

5表示成:0000 0000 0000 0000 0000 0000 0000 0101 

6表示成:0000 0000 0000 0000 0000 0000 0000 0110 

进行 ^ :0000 0000 0000 0000 0000 0000 0000 0011 

得到:3 

四、位非~:

~操作符,对每个二进制位的内容求反,即1变成0,0变成1 

测试负数: 

int a = -5;//101; 

System.out.println(~a); 

打印:4 

过程是这样的,首先表示出来这个负数 

1111 1111 1111 1111 1111 1111 1111 1011(上面已经提到为什么这样表示) 

各位取反得到 

0000 0000 0000 0000 0000 0000 0000 0100 

转为10进制得到4 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章