Java运算符详解& >> <<

&双目运算符,运算时均把运算数转换为二进制再做比较,规则:当相同的位上均为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);

|

当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110


你可能感兴趣的:(位运算符)