逻辑门是任何数字电路的基本构建块。它需要一两个输入并根据这些输入产生输出。输出可能是高 (1) 或低 (0)。逻辑门使用二极管或晶体管实现。它也可以使用真空管、光学元件、分子等电磁元件构建。在计算机中,大多数电子电路由逻辑门组成。逻辑门用于创建执行计算、数据存储或展示面向对象编程尤其是继承能力的电路。
定义了七个基本逻辑门,它们是:
- 与门,
- 或门,
- 不是门,
- 与非门,
- 或非门,
- 异或门和
- 异或门。
以下是关于它们的简要细节及其实现:
- 与门
如果两个输入都是 1,AND 门给出的输出为 1,否则给出 0。
以下是使用各种方法实现与门的程序:
- 使用产品方法。
- 使用 if else 条件。
- 使用“和(&)”运算符。
Product Method
// C program implementing the AND gate // through product method. #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, product; for (i = 0; i < 5; i++) { // using product method product = a[i] * b[i]; printf("\n %d AND %d = %d", a[i], b[i], product); } }
& Operator
// C program implementing the AND gate // using & operator #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, and_ans; for (i = 0; i < 5; i++) { // using the & operator and_ans = a[i] & b[i]; printf("\n %d AND %d = %d", a[i], b[i], and_ans); } }
If-Else
// C program implementing the AND gate // using if and else condition #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, ans; for (i = 0; i < 5; i++) { if (a[i] == 0 && b[i] == 0) ans = 0; else if (a[i] == 0 && b[i] == 1) ans = 0; else if (a[i] == 1 && b[i] == 0) ans = 0; else ans = 1; printf("\n %d AND %d = %d", a[i], b[i], ans); } }
+ Operator
// C program implementing the OR gate // using + operator #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, or_ans; for (i = 0; i < 5; i++) { // using the + operator if (a[i] + b[i] > 0) or_ans = 1; else or_ans = 0; printf("\n %d AND %d = %d", a[i], b[i], or_ans); } }
| Operator
// C program implementing the OR gate // using | operator #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, or_ans; for (i = 0; i < 5; i++) { // using the | operator or_ans = a[i] | b[i]; printf("\n %d AND %d = %d", a[i], b[i], or_ans); } }
|| Operator
// C program implementing the OR gate // using || operator #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, or_ans; for (i = 0; i < 5; i++) { // using the || operator or_ans = a[i] || b[i]; printf("\n %d AND %d = %d", a[i], b[i], or_ans); } }
If-Else
// C program implementing the OR gate // using if else #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, or_ans; for (i = 0; i < 5; i++) { // using the if-else conditions if (a[i] == 0 && b[i] == 0) or_ans = 0; else or_ans = 1; printf("\n %d AND %d = %d", a[i], b[i], or_ans); } }
If-Else
// C program implementing the NAND gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, ans; for (i = 0; i < 5; i++) { if (a[i] == 1 && b[i] == 1) ans = 0; else ans = 1; printf("\n %d NAND %d = %d", a[i], b[i], ans); } }
Complement of the product
// C program implementing the NAND gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, ans; for (i = 0; i < 5; i++) { ans = !(a[i] * b[i]); printf("\n %d NAND %d = %d", a[i], b[i], ans); } }
+ Operator
// C program implementing the NOR gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, ans; for (i = 0; i < 5; i++) { ans = !(a[i] + b[i]); printf("\n %d NOR %d = %d", a[i], b[i], ans); } }
If-Else
// C program implementing the NOR gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, ans; for (i = 0; i < 5; i++) { if (a[i] == 0 && b[i] == 0) ans = 1; else ans = 0; printf("\n %d NOR %d = %d", a[i], b[i], ans); } }
If-Else
// C program implementing the NOT gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int i, ans; for (i = 0; i < 5; i++) { if (a[i] == 0) ans = 1; else ans = 0; printf("\n NOT %d = %d", a[i], ans); } }
! Operator
// C program implementing the NOT gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int i, ans; for (i = 0; i < 5; i++) { ans = !(a[i]); printf("\n NOT %d = %d", a[i], ans); } }
输出:1 AND 0 = 0 0 AND 1 = 0 1 AND 1 = 1 0 AND 0 = 0 1 AND 0 = 0
- 或门
如果两个输入中的任何一个为 1,OR 门给出的输出为 1,否则给出 0。
以下是使用各种方法实现与门的程序:
- 使用 +运算符。
- 使用 |运算符。
- 使用 ||运算符。
- 使用 if else。
+ 操作员
// C program implementing the OR gate // using + operator #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, or_ans; for (i = 0; i < 5; i++) { // using the + operator if (a[i] + b[i] > 0) or_ans = 1; else or_ans = 0; printf("\n %d AND %d = %d", a[i], b[i], or_ans); } } |操作员
// C program implementing the OR gate // using | operator #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, or_ans; for (i = 0; i < 5; i++) { // using the | operator or_ans = a[i] | b[i]; printf("\n %d AND %d = %d", a[i], b[i], or_ans); } } ||操作员
// C program implementing the OR gate // using || operator #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, or_ans; for (i = 0; i < 5; i++) { // using the || operator or_ans = a[i] || b[i]; printf("\n %d AND %d = %d", a[i], b[i], or_ans); } } 如果别的
// C program implementing the OR gate // using if else #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, or_ans; for (i = 0; i < 5; i++) { // using the if-else conditions if (a[i] == 0 && b[i] == 0) or_ans = 0; else or_ans = 1; printf("\n %d AND %d = %d", a[i], b[i], or_ans); } } 输出:1 AND 0 = 1 0 AND 1 = 1 1 AND 1 = 1 0 AND 0 = 0 1 AND 0 = 1
- 与非门
如果两个输入都是 1,则与非门(与非门)输出 0,否则输出 1。
以下是使用各种方法实现与非门的程序:
- 使用 if else。
- 使用产品的补充。
如果别的
// C program implementing the NAND gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, ans; for (i = 0; i < 5; i++) { if (a[i] == 1 && b[i] == 1) ans = 0; else ans = 1; printf("\n %d NAND %d = %d", a[i], b[i], ans); } } 产品的补充
// C program implementing the NAND gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, ans; for (i = 0; i < 5; i++) { ans = !(a[i] * b[i]); printf("\n %d NAND %d = %d", a[i], b[i], ans); } } 输出:1 NAND 0 = 1 0 NAND 1 = 1 1 NAND 1 = 0 0 NAND 0 = 1 1 NAND 0 = 1
- 或非门
如果两个输入都是 0,则 NOR 门(否定的 OR)输出 1,否则输出 1。
以下是使用各种方法实现或非门的程序:
- 使用 + 运算符。
- 使用 if else。
+ 操作员
// C program implementing the NOR gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, ans; for (i = 0; i < 5; i++) { ans = !(a[i] + b[i]); printf("\n %d NOR %d = %d", a[i], b[i], ans); } } 如果别的
// C program implementing the NOR gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int b[5] = { 0, 1, 1, 0, 0 }; int i, ans; for (i = 0; i < 5; i++) { if (a[i] == 0 && b[i] == 0) ans = 1; else ans = 0; printf("\n %d NOR %d = %d", a[i], b[i], ans); } } 输出:1 NOR 0 = 0 0 NOR 1 = 0 1 NOR 1 = 0 0 NOR 0 = 1 1 NOR 0 = 0
- 非门
它充当逆变器。它只需要一个输入。如果输入为 1,它会将结果反转为 0,反之亦然。
以下是使用各种方法实现非门的程序:
- 使用 !操作员。
- 使用 if else。
如果别的
// C program implementing the NOT gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int i, ans; for (i = 0; i < 5; i++) { if (a[i] == 0) ans = 1; else ans = 0; printf("\n NOT %d = %d", a[i], ans); } } !操作员
// C program implementing the NOT gate #include
#include int main() { int a[5] = { 1, 0, 1, 0, 1 }; int i, ans; for (i = 0; i < 5; i++) { ans = !(a[i]); printf("\n NOT %d = %d", a[i], ans); } } 输出:NOT 1 = 0 NOT 0 = 1 NOT 1 = 0 NOT 0 = 1 NOT 1 = 0