&双目运算符,运算时均把运算数转换为二进制再做比较,规则:当相同的位上均为1时结果为1,否则结 果为0。
/**
* 111二进制是:1101111
* 11 二进制是:1011
* ---11的二进制不够的补0,补完之后是0001011---
* 对比1101111和0001011的结果是0001011,去掉前面的3个0就是1011,然后转十进制是11
*/
System.out.println(111&11);
>>
/**
* 111二进制是:1101111
* 右1位,结果是110111,转十进制是55
*/
System.out.println(111>>1);
<<
/**
* 111二进制是:1101111
* 左移1位,结果是11011110,转十进制是55
*/
System.out.println(111<<1);