按位运算符
按位运算符
二进制位运算
a = 1010 0101;
b = 0111 0011;
~取反运算
b = 0111 0011;
~b = 1000 1100;//结果
注:1变为0,0变为1.
按位与&运算:
a = 1010 0101;
b = 0111 0011;
a&b = 0010 0001;
注:只有两个运算对象相应位置都为1时,结果才为1,
(只两个运算对象相应位置都为真时,才为真)
按位或 | 运算
a = 1010 0101;
b = 0111 0011;
a|b= 1111 0111;//结果
注:运算对象相应位置有1,结果就是1;
(只两个运算对象相应位置有一个为真时,就为真)
按位异或^运算
a = 1010 0101;
b = 0111 0011;
a^b= 1101 0110;//结果
注:运算对象相应位置相同位0,不同为1。
移位运算符
左移:<<
int a = 4;
a = a<<2;
System.out.println("a="+a);
运算结果 16;
左移是运算对象乘以2的n次方;
右移:>>
int a = 8;
a = a>>2;
System.out.println("a="+a);
运算结果 2;
对象为正时,右移是除以2的n次方;