20 Puertas lógicas con dos entradas


Las puertas lógicas son una de las herramientas fundamentales, no solo a la hora de diseñar algoritmos, también es conocida su importancia a la hora de diseñar circuitos lógicos, eléctricos, etc.

Como dice el titulo del post, se pueden crear 20 puertas lógicas, de dos entradas, mediante la conexión de las puertas más conocidas, la puerta And ( & ), la puerta Or( | ), y la puerta Xor( ^ ) más el conector Not aplicado a una puerta o un conector.

A continuación mostraremos el código de cada una de ellas, en python3, comenzando por las tres fundamentales, And, Or y Xor, mostrando después de cada una, la salida que ofrece, a esas puertas no usuales las llamaremos Esp.

La puerta Xor, es de uso corriente en la vida cotidiana, " Si es Miércoles o Viernes como pescado", dado que no puede ser Miércoles y Viernes a la vez, esa seria la puerta indicada para resolver la operación booleana.

Como es bien conocido el conector Not, invierte el valor de la entrada o el resultado, si es True lo convierte en False y  viceversa. Para lograr las mismas salidas de las denominadas puertas especiales, se pueden utilizar también otro tipo de conexiones.




boolean = [True, False] print('Puerta Lógica And\n') print('Val I','Val J','Res.','\n',sep='\t',) for i in boolean: for j in boolean: print(i, j, i and j, sep ='\t')
Puerta Lógica And Val I Val J Res. True True True True False False False True False False False False

print('\nPuerta Lógica Or\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j, i or j, sep ='\t')
Puerta Lógica Or Val I Val J Res. True True True True False True False True True False False False

print('\nPuerta Lógica Xor\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j, i ^ j, sep ='\t')
Puerta Lógica Xor Val I Val J Res. True True False True False True False True True False False False

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j, i and (i ^ j), sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True False True False True False True False False False False

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j, j and (i ^ j), sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True False True False False False True True False False False

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j, not i and not j, sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True False True False False False True False False False True

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j, i or (i and j), sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True True True False True False True False False False False

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j, j or (i and j), sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True True True False False False True True False False False

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j, not (i ^ j), sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True True True False False False True False False False True

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j, not j, sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True False True False True False True False False False True

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j, not i, sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True False True False False False True True False False True

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j,i or not j, sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True True True False True False True False False False True

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j,j or not i, sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True True True False False False True True False False True

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j,not (i and j), sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True False True False True False True True False False True

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j,(i ^ j) or not(i ^ j), sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True True True False True False True True False False True

print('\nPuerta Lógica Esp\n') print('Val I','Val J','Res.','\n',sep='\t') for i in boolean: for j in boolean: print(i, j, i and not i, sep ='\t')
Puerta Lógica Esp Val I Val J Res. True True False True False False False True False False False False



No hay comentarios:

Publicar un comentario

La Luna Llena del 1 de Agosto

 El martes día uno hay luna llena y un buen momento para realizar el estudio que se indica en el siguiente enlace  Cristales No Empañados Al...