1. 异或(^)
printf("%d\n", -2^-3);
// 3;
// 提示:补码,也即计算机对负数的表示是通过补码的形式;
// -2 ⇒ 1000 0010 ⇒ 1111 1101 ⇒ 1111 1110
// -3 ⇒ 1000 0011 ⇒ 1111 1100 ⇒ 1111 1101
// 异或完了之后的结果就是 3
2. 与非(NAND)
Y = !(A & B)
真值表:
- 0 0 ⇒ 1
- 0 1 ⇒ 1
- 1 0 ⇒ 1
- 1 1 ⇒ 0
3. 或非(NOR)
Y = !(A | B)
注意 与非和或非 的真值表在形式上十分特殊:
真值表:
- 0 0 ⇒ 1
- 0 1 ⇒ 0
- 1 0 ⇒ 0
- 1 1 ⇒ 0
4. 异或(XOR)
Y = ((A & !B) | (!A & B))
也即异或逻辑,可以通过基本布尔运算的叠加而来;
版权声明:本文为lanchunhui原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。