布尔运算(Boolean Operations)

来源:互联网 发布:java多线程高并发项目 编辑:程序博客网 时间:2024/04/25 22:29

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

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

0 0
原创粉丝点击