Skip to main content

logic gate

我来为你详细解释逻辑门(与门 AND、与非门 NAND、或门 OR、或非门 NOR、非门 NOT)的定义、功能,并通过例子说明它们的输入输出关系。这些逻辑门是数字电路和计算机的基础。

How to

逻辑门(如 AND、NAND、OR、NOR、NOT)在计算机中用二进制(0 和 1)表示输入和输出,0 表示“假”(低电平),1 表示“真”(高电平)。它们的行为通过真值表定义,并可以用位运算实现。

二进制表示的基本概念

  • 输入和输出:用 0 和 1 表示。
  • 真值表:展示输入和输出的二进制关系。
  • 位运算:通过按位运算符(如 &|~)实现逻辑门功能。

1. 与门 (AND Gate)

定义

所有输入为 1 时,输出为 1,否则为 0。

二进制真值表

ABY = A ∧ B
000
010
100
111

二进制运算

  • 用按位与运算符 & 表示:Y = A & B
  • 示例:
    • 0 & 0 = 0
    • 0 & 1 = 0
    • 1 & 1 = 1

2. 与非门 (NAND Gate)

定义

所有输入为 1 时,输出为 0,其他情况为 1。

二进制真值表

ABY = ¬(A ∧ B)
001
011
101
110

二进制运算

  • 先计算 A & B,再取反(用 ~ 或按位取反后处理)。
  • 示例:
    • ¬(0 & 0) = ¬0 = 1
    • ¬(1 & 1) = ¬1 = 0
  • 在编程中:Y = ~(A & B) & 1(取反后保留最低位)。

3. 或门 (OR Gate)

定义

至少一个输入为 1 时,输出为 1,否则为 0。

二进制真值表

ABY = A ∨ B
000
011
101
111

二进制运算

  • 用按位或运算符 | 表示:Y = A | B
  • 示例:
    • 0 | 0 = 0
    • 0 | 1 = 1
    • 1 | 1 = 1

4. 或非门 (NOR Gate)

定义

所有输入为 0 时,输出为 1,否则为 0。

二进制真值表

ABY = ¬(A ∨ B)
001
010
100
110

二进制运算

  • 先计算 A | B,再取反。
  • 示例:
    • ¬(0 | 0) = ¬0 = 1
    • ¬(1 | 0) = ¬1 = 0
  • 在编程中:Y = ~(A | B) & 1

5. 非门 (NOT Gate)

定义

输入为 0 时输出 1,输入为 1 时输出 0。

二进制真值表

AY = ¬A
01
10

二进制运算

  • 用按位取反运算符 ~ 表示(需处理位数,通常只取最低位)。
  • 示例:
    • ¬0 = 1
    • ¬1 = 0
  • 在编程中:Y = ~A & 1

Python 代码示例

以下是用 Python 位运算符实现逻辑门的代码:

# 与门
def AND_gate(a, b):
return a & b

# 与非门
def NAND_gate(a, b):
return ~(a & b) & 1

# 或门
def OR_gate(a, b):
return a | b

# 或非门
def NOR_gate(a, b):
return ~(a | b) & 1

# 非门
def NOT_gate(a):
return ~a & 1

# 测试
inputs = [(0, 0), (0, 1), (1, 0), (1, 1)]
print("A B AND NAND OR NOR")
for a, b in inputs:
print(f"{a} {b} {AND_gate(a, b)} {NAND_gate(a, b)} {OR_gate(a, b)} {NOR_gate(a, b)}")

print("\nA NOT")
for a in [0, 1]:
print(f"{a} {NOT_gate(a)}")

References