位运算符
package operator;
public class demo04 {
public static void main(String[] args) {
/* 位运算符与,或,非 & | ~
A = 0011 1100
B = 0000 1101
A & B = 0000 1100 //都为1则为1,否则为0
A | B = 0011 1101 //有一个为1即为1
A ^ B = 0011 0001 //异或运算,相同为0,不同为1
~B = 1111 0010 //取反,0变1,1变0
2*8怎么计算最快,可以拆分为2*2*2*2,
效率极高!!
<< 左移 相当于*2的n次方,如3<<2,3左移2位,相当于3*2的2次方=12
>> 右移 相当于/2的n次方,如11>>2,11右移2位,相当于11/2的2次方,取整弃余,等于2
2左移3位解析:
0000 0000 //0
0000 0001 //1
0000 0010 //2,左移3位为0001 0000,即16
0000 0011 //3
0000 0100 //4
0000 0101 //5
0000 0110 //6
0000 0111 //7
0000 1000 //8
0000 1001 //9
0000 1010 //10
0000 1011 //11
0000 1100 //12
0000 1101 //13
0000 1110 //14
0000 1111 //15
0001 0000 //16
*/
System.out.println(2<<3); //2左移3位,相当于2*2的3次方,输出16
}
}