Una puerta lógica es un bloque de construcción elemental de cualquier circuito digital. Toma una o dos entradas y produce una salida basada en esas entradas. Las salidas pueden ser altas (1) o bajas (0). Las puertas lógicas se implementan mediante diodos o transistores. También se puede construir utilizando tubos de vacío, elementos electromagnéticos como óptica, molécula, etc. En una computadora, la mayoría de los circuitos electrónicos están formados por puertas lógicas. Las puertas lógicas se utilizan para crear un circuito que realiza cálculos, almacenamiento de datos o muestra la programación orientada a objetos, especialmente el poder de la herencia.
Hay siete puertas lógicas básicas definidas, estas son:
- Y puerta,
- O puerta,
- NO puerta,
- puerta NAND,
- puerta NOR,
- puerta XOR y
- puerta XNOR.
A continuación se presentan los breves detalles sobre ellos junto con su implementación:
- Puerta
AND La puerta AND da una salida de 1 si ambas entradas son 1, da 0 de lo contrario.
A continuación se muestran los programas para implementar la puerta AND utilizando varios métodos:
- Usando el método del producto.
- Usando la condición if else.
- Uso del operador “y (&)”.
Producto Método
// C program implementing the AND gate
// through product method.
#include <stdio.h>
#include <stdlib.h>
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);
}
}
y operador
// C program implementing the AND gate
// using & operator
#include <stdio.h>
#include <stdlib.h>
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 <stdio.h>
#include <stdlib.h>
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);
}
}
Producción:1 AND 0 = 0 0 AND 1 = 0 1 AND 1 = 1 0 AND 0 = 0 1 AND 0 = 0
- Puerta
OR La puerta OR da una salida de 1 si cualquiera de las dos entradas es 1, da 0 de lo contrario.
A continuación se muestran los programas para implementar la puerta AND utilizando varios métodos:
- Usando el operador +.
- Usando | operador.
- Usando || operador.
- Usando si más.
+ Operador
// C program implementing the OR gate
// using + operator
#include <stdio.h>
#include <stdlib.h>
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);
}
}
| Operador
// C program implementing the OR gate
// using | operator
#include <stdio.h>
#include <stdlib.h>
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);
}
}
|| Operador
// C program implementing the OR gate
// using || operator
#include <stdio.h>
#include <stdlib.h>
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 <stdio.h>
#include <stdlib.h>
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);
}
}
Producción:1 AND 0 = 1 0 AND 1 = 1 1 AND 1 = 1 0 AND 0 = 0 1 AND 0 = 1
- Puerta
NAND La puerta NAND (AND negado) da una salida de 0 si ambas entradas son 1, da 1 de lo contrario.
A continuación se muestran los programas para implementar la puerta NAND utilizando varios métodos:
- Usando si más.
- Utilizando Complemento del producto.
If-Else
// C program implementing the NAND gate
#include <stdio.h>
#include <stdlib.h>
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);
}
}
complemento del producto
// C program implementing the NAND gate
#include <stdio.h>
#include <stdlib.h>
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);
}
}
Producción:1 NAND 0 = 1 0 NAND 1 = 1 1 NAND 1 = 0 0 NAND 0 = 1 1 NAND 0 = 1
- Puerta
NOR La puerta NOR (O negado) da una salida de 1 si ambas entradas son 0, da 1 de lo contrario.
A continuación se muestran los programas para implementar la puerta NOR utilizando varios métodos:
- Usando el operador +.
- Usando si más.
+ Operador
// C program implementing the NOR gate
#include <stdio.h>
#include <stdlib.h>
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 <stdio.h>
#include <stdlib.h>
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);
}
}
Producción:1 NOR 0 = 0 0 NOR 1 = 0 1 NOR 1 = 0 0 NOR 0 = 1 1 NOR 0 = 0
- NO puerta
Actúa como inversor. Solo necesita una entrada. Si la entrada se da como 1, invertirá el resultado como 0 y viceversa.
A continuación se muestran los programas para implementar NOT gate usando varios métodos:
- Usando ! Operador.
- Usando si más.
If-Else
// C program implementing the NOT gate
#include <stdio.h>
#include <stdlib.h>
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);
}
}
! Operador
// C program implementing the NOT gate
#include <stdio.h>
#include <stdlib.h>
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);
}
}
Producción:NOT 1 = 0 NOT 0 = 1 NOT 1 = 0 NOT 0 = 1 NOT 1 = 0
Publicación traducida automáticamente
Artículo escrito por sunilkannur98 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA