Implementação das principais portas lógicas digitais em Python, com saída via terminal — projeto educacional focado em fundamentos de lógica booleana e programação.
Implementação em Python das sete portas lógicas fundamentais da eletrônica digital, com exibição dos resultados e tabelas verdade diretamente no terminal.
Desenvolvido para consolidar o entendimento de lógica booleana — base essencial para quem trabalha com infraestrutura, sistemas embarcados, redes e arquitetura de computadores.
| Porta | Símbolo | Descrição |
|---|---|---|
| AND | A · B | Saída 1 somente se todas as entradas forem 1 |
| OR | A + B | Saída 1 se pelo menos uma entrada for 1 |
| NOT | Ā | Inverte o valor da entrada |
| NAND | A ⊼ B | Inverso do AND — saída 0 somente se todas as entradas forem 1 |
| NOR | A ⊽ B | Inverso do OR — saída 1 somente se todas as entradas forem 0 |
| XOR | A ⊕ B | Saída 1 se as entradas forem diferentes |
| XNOR | A ⊙ B | Saída 1 se as entradas forem iguais |
Porta AND
a = 0 b = 0 => a AND b = 0
a = 0 b = 1 => a AND b = 0
a = 1 b = 0 => a AND b = 0
a = 1 b = 1 => a AND b = 1
Porta OR
a = 0 b = 0 => a OR b = 0
a = 0 b = 1 => a OR b = 1
a = 1 b = 0 => a OR b = 1
a = 1 b = 1 => a OR b = 1
Porta NOT
a = 0 => a NOT = 1
a = 1 => a NOT = 0
Porta NAND
a = 0 b = 0 => a NAND b = 1
a = 0 b = 1 => a NAND b = 1
a = 1 b = 0 => a NAND b = 1
a = 1 b = 1 => a NAND b = 0
... [demais portas]
Nota: A tabela verdade completa ainda não está implementada no código — atualmente
testaPortas.pyexecuta testes individuais para cada combinação de entradas.
- Python 3.x instalado
# Clone o repositório
git clone https://github.com/rapassos/portasLogicas.git
# Entre na pasta
cd portasLogicas
# Execute o script de testes
python testaPortas.pyO script
testaPortas.pyimporta as funções deportas.pye executa uma bateria de testes para validar cada porta lógica.
portasLogicas/
├── portas.py # Implementação das 7 portas lógicas (funções)
├── testaPortas.py # Script de testes para validar cada porta
└── README.md
Arquitetura:
portas.py— contém as funções puras de cada porta lógicatestaPortas.py— importaportas.pye executa testes para cada operação
Esta é a tabela verdade teórica das portas lógicas implementadas. A geração automática desta tabela é uma funcionalidade planejada para versões futuras.
| A | B | AND | OR | NOT A | NAND | NOR | XOR | XNOR |
|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
- Lógica Booleana — álgebra de Boole aplicada a código
- Funções em Python — organização modular por responsabilidade
- Separação de código — lógica (
portas.py) separada de testes (testaPortas.py) - Importação de módulos —
import portaspara reutilização de código - Operadores lógicos —
and,or,notnativos do Python - Saída formatada — exibição clara dos resultados no terminal
- Gerar tabela verdade automaticamente — função para exibir tabela completa de qualquer porta
- Refatorar para Programação Orientada a Objetos (uma classe por porta)
- Interface CLI interativa com
argparse - Combinação de portas para simular circuitos (ex: Half Adder, Full Adder)
- Visualização gráfica com
matplotliboutkinter - Testes unitários com
pytestouunittest
Portas lógicas são a base de toda arquitetura de computadores — CPUs, memórias, controladores de rede. Como profissional de infraestrutura com 15+ anos de experiência, entender esse nível de abstração ajuda a diagnosticar comportamentos de hardware e sistemas a um nível mais profundo.
Rafael Passos Guimarães
Analista de Infraestrutura | 15+ anos em TI | Transição para Cloud & DevOps
MIT License — veja LICENSE para detalhes.
💡 Próximos passos planejados:
- Implementar geração automática de tabela verdade
- Refatorar para OOP com classe base
PortaLogicae subclasses- Adicionar testes unitários com
pytest