|:两个二进制对应位都为0时,结果等于0,否则结果等于1;
&:两个二进制的对应位都为1时,结果为1,否则结果等于0;
^:两个二进制的对应位相同,结果为0,否则结果为1。
| 例如:2|3 结果是 3,以一个字节为列,2和3在计算机中的储存如下:
2: 0000 0010
3: 0000 0011
根据定义:对应位都0时,结果等于0,否则结果等于1
故:2|3 = 0000 0011 = 3;
当出现负数时,需要注意,运算是以补码的形式进行:
如:-2 | 3 = -1
源码运算:-2 | 3 = 1000 0010 | 0000 0011 = 1000 0011 =-3 错误;
因为在计算机中运算和储存都是以补码进行的:
补码运算:-2 | 3 = 1111 1110 | 0000 0011 = 1111 1111(补码)= (转换)= 1000 0001(源码) = -1
& 例如:5 & 8 结果是 以一个字节为列,5和8在计算机中的储存如下:
5: 0000 0101
8: 0000 1000
根据定义:对应位都为1时,结果为1,否则结果等于0
故:5 & 8 = 0;
当出现负数是,以补码进行运算:
如:-5 & -8 = 1111 1011(补码) | 1111 1000(补码) = 1111 1000(补码) =(转换)= 1000 1000(源码) = -8
^ 例如:10 ^ 8 结果是 以一个字节为列,10和8在计算机中的储存如下:
10:0000 1010
8: 0000 1000
根据定义:对应位相同,结果为0,否则结果为1
故:10 ^ 8 = 2;
当出现负数是,以补码进行运算:
如:-10 ^ -8 = 1111 0110(补码) | 1111 1000(补码) = 0000 1110(补码) = 0000 1110(源码) = 14



