运算符--位运算符
位运算符:
举例 &、|、^ 、~
例如
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
又因为,整数默认是int类型,占4个字节
所以得到3和4的原码:
3的原码,反码,补码:00000000 00000000 00000000 00000011
4的原码,反码,补码:00000000 00000000 00000000 00000100
&:位与运算符:每一列对应位置 有0则0。
| 位或运算符:每一列对应位置 有1则1。
^ 位异或运算符:每一列对应位置 相同则0,不同则1。
~ 位取反运算符:按位取反(1变成0,0变成1)
举例 <<、>>、>>>
规律://左移n位,数值乘上2的n次方//右移n位,数值除以2的n次方
public class OptWeiDemo2 {
public static void main(String[] args) {
//规律 左移n位,数值乘上2的n次方
System.out.println(3 << 2); //12 3*4=12 3*2^2
System.out.println(3 << 4); //3*2^4 =48
System.out.println(24 >> 2); //6 24/4=6 24/2^2=6
//规律 右移n位,数值除以2的n次方
System.out.println(48 >> 3); //48/2^3=6
System.out.println(24 >>> 2);
System.out.println(-24 >> 2);
System.out.println(-24 >>> 2);
}
}