为了方便记忆,对Java的各种逻辑操作写下一点东西:
Java中有的双目逻辑操作符主要有:&、|、^,分别代表的意思是逻辑与、逻辑或和异或操作。
对于&: 1 & 1 = 1;1 & 0 = 1;其他全部等于0。也就是说除非其中一个操作数是1计算结果才为1,这就是它们的等价关系。
对于|: 1 | 1 = 1; 1 | 0 = 1; 0 | 0 = 0;只有两个操作数全部为0时计算结果才为0。
对于^: 1 | 1 = 0; 1 | 0 = 1; 0 | 0 = 0;只有当两个操作数不同时计算结果为1,操作数相同则计算结果为0。
方便地,如果我们想知道一个数字的字节码表示,我们就可以利用逻辑与操作,逐一判断各位上的操作数是不是1来实现。
例如:
* ???????
1 0 0 0 0 0 0 0,
我们想判断*所在的位置的操作数是不是1,我们选择一个操作数,令该操作数上与要判断操作数的特定位置是不是1的位置为1,其他位置置为零。
两个操作数的结算结果是不是0取决于*所在位置是不是1。