拓展:位运算符
位运算符(& | ^ ~ << >>)
位运算符涉及底层知识,与二进制有密切联系
假设: A = 0011 1100 B = 0000 1101
&(与) A&B = 0000 1100 //每位之间,10为0,11为1,00为0
|(或) A|B = 0011 1101 //每位之间,10为1,00为0,11为1
^(非) A^B = 0011 0001 //每位之间,相同为0,不同为1
~(取反) ~B = 1111 0010 //每位之间,相反取值,1为0,0为1
左移 << 一个数左移两位就是*2
右移 >> 一个数右移两位就是/2
原理:
二进制中:
0000 0001 为1
0000 0010 为2
0000 0100 为4
0000 1000 为8 //二进制1在往左移的过程中,十进制的值再乘2增长
代码输入结果验证:
public class Demo01 {
public static void main(String[] args) {
System.out.println(2>>3); //2右移3次,2/2/2/2 结果为0,因为浮点数自动转型为int
System.out.println(2<<3); //2左移3次,2*2*2*2结果为16
}
}

浙公网安备 33010602011771号