/*
位运算:
>>,>>>,<<,&,|,^,~
想要进行位运算,就得先知道二进制
*/
public class WeiYunSuan`` {
public static void main(String[] args) {
int x = 3;
int y = 4;
System.out.println(x & y);//0
System.out.println(x | y);//7
System.out.println(x ^ y);//7
System.out.println(~x);//-4
}
}
/*
分析:
想要进行位运算,就得先知道二进制
3的二进制:11
4的二进制:100
3的原码,反码,补码:00000000 00000000 00000000 00000011
4的原码,反码,补码:00000000 00000000 00000000 00000100
&位与运算:有0则0
00000000 00000000 00000000 00000011
&
00000000 00000000 00000000 00000100
------------------------------------
00000000 00000000 00000000 00000000
结果是:0
|位或运算:有1则1
00000000 00000000 00000000 00000011
|
00000000 00000000 00000000 00000100
-----------------------------------
00000000 00000000 00000000 00000111
结果是:7
^位异或运算:相同则0,不同则1
00000000 00000000 00000000 00000011
^
00000000 00000000 00000000 00000100
-----------------------------------
00000000 00000000 00000000 00000111
结果是:7
~位取反,0变成1,1变成0
00000000 00000000 00000000 00000011
-----------------------------------
~ 11111111 11111111 11111111 11111100
符号位 数值位
原码: 1 1111111 11111111 11111111 11111100
反码: 1 0000000 00000000 00000000 00000011
补码: 1 0000000 00000000 00000000 00000100
负数的反码到补码要加1
结果是-4
感谢阅读,我是啊帅和和,一位大数据专业即将大四学生,祝你快乐。