1.特点:二元操作符,操作两个二进制数据;两个二进制数最低位对齐,只有当两个对位数都是1时才为1,否则为0
2.案例:
int a = 3 & 2 ;
System.out.println(a); //结果为 2
3.分析:
3的二进制补码表示为:
00000000 00000000 00000000 00000011
2的二进制补码表示为:
00000000 00000000 00000000 00000010
运算:3 & 2
00000000 00000000 00000000 00000011
& 00000000 00000000 00000000 00000010
-------------------------------------------
00000000 00000000 00000000 00000010 二进制是2
1.特点:二元操作符,操作两个二进制数据;两个二进制数最低位对齐,当两个对位数只要有一个是1则为1,否则为0
2.案例:
int a = 3 | 2 ;
System.out.println(a); //结果为 3
3.分析:
3的二进制补码表示为:
00000000 00000000 00000000 00000011
2的二进制补码表示为:
00000000 00000000 00000000 00000010
运算:3 | 2
00000000 00000000 00000000 00000011
| 00000000 00000000 00000000 00000010
-------------------------------------------
00000000 00000000 00000000 00000011 该补码对应十进制为3
1.特点:二元操作符,操作两个二进制数据;两个二进制数最低位对齐,只有当两个对位数字不同时为1,相同为0
2.案例:
int a = 3 ^ 2 ;
System.out.println(a); //结果为 1
3.分析:
3的二进制补码表示为:
00000000 00000000 00000000 00000011
2的二进制补码表示为:
00000000 00000000 00000000 00000010
运算:3 ^ 2
00000000 00000000 00000000 00000011
^ 00000000 00000000 00000000 00000010
-------------------------------------------
00000000 00000000 00000000 00000001 该补码对应十进制为1
1.特点:一元操作符,
2.规则:生成与输入位相反的值–若出入0,则输出1;若输入1,则输入0
3.案例:
int a = ~ 2 ;
System.out.println(a); //结果为
4.分析:
2的二进制补码表示为:
00000000 00000000 00000000 00000010
运算:
~ 00000000 00000000 00000000 00000010
------------------------------------------
11111111 11111111 11111111 11111101 //该补码对应十进制为:-3
0.形式: m << n
1.特点:二元操作符,m数字二进制向左移动n位的结果;结果相当于: m*(2的n次方)
2.案例:
int a = 3 << 2 ;
System.out.println(a); //结果为 12
3.分析:
3的二进制补码表示为:
00000000 00000000 00000000 00000011
运算:3 << 2
00000000 00000000 00000000 00000011
<< 2
-------------------------------------------
00000000 00000000 00000000 00001100 该补码对应十进制为12
0.形式: m >> n
1.特点:二元操作符,m数字二进制向右移动n位的结果;结果相当于: m / (2的n次方) 的结果向上取整
2.案例:
int a = 3 >> 2 ;
System.out.println(a); //结果为 0
3.分析:
3的二进制补码表示为:
00000000 00000000 00000000 00000011
运算:3 >> 2
00000000 00000000 00000000 00000011
>> 2
-------------------------------------------
00000000 00000000 00000000 00000000 该补码对应十进制为0
4.注意: 最后的11向右移动两位,正好补上左边补上0; 所以结果为0
1.二元操作符
2.特点:它使用0扩展,无论正负都在最高位补0
3.案例:
int a = 3 >>> 2 ;
System.out.println(a); //结果为 0
4.分析:
3的二进制补码表示为:
00000000 00000000 00000000 00000011
运算:
00000000 00000000 00000000 00000011
>>>2
------------------------------------------
00000000 00000000 00000000 00000000
————————————————