布尔运算(Boolean Operations)

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))

也即异或逻辑,可以通过基本布尔运算的叠加而来;

你可能感兴趣的:(math)