记住一个原则,就能记住与运算(&)、或运算(|)和异或运算(^)

每次一看到与或运算的题,都知道是考什么点(按二进制位进行相应运算),但是自己一算,就是会算错,加之之前有一篇字符串反转输出的题,也用到了异或运算,那么,今天就讲解下如何记住这三种运算的运算规则。


与运算(&)原则:同为1则为1,否则为0
0&0=0;  0&1=0;   1&0=0;    1&1=1;

4&7: 0000 0100 & 0000 0111 = 0000 0100 结果为4


附:负数与运算按补码形式参加与运算(负数或运算(|)也是按补码运算)
比如说4的原码是
4原码:0000 0100 7原码:0000 0111
4反码:1111 1011 7反码:1111 1000
4补码:1111 1100 7补码:1111 1001
补码=反码+1 反码=补码-1

-4&-7: 1111 1100 & 1111 1001 = 1111 1000(补码) 换算为反码:1111 0111 换为原码:0000 1000 就是-8

public static void main(String[] args) {
		System.out.println(4 & 7); // 4
		System.out.println(-4 & -7); // -8
		System.out.println(4 | 7); // 7
		System.out.println(4 ^ 7); // 3

	}


或运算(|)原则:只要有1则为1,否则为0
0|0=0;  0|1=1;  1|0=1;   1|1=1;
4|7: 0000 0100 | 0000 0111 = 0000 0111 结果为7

异或运算(^)原则:同0同1都为0,否则为1
0^0=0;  0^1=1;  1^0=1;   1^1=0;
4^7: 0000 0100 ^ 0000 0111 = 0000 0011 结果为3


版权声明:本文为weixin_39309402原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。