Você está na página 1de 19

PROGRAMAÇÃO _ FRONT-END _

DATA SCIENCE _ INTELIGÊNCIA ARTIFICIAL _

DEVOPS _ UX & DESIGN _

MOBILE _ INOVAÇÃO & GESTÃO _

Artigos > DevOps

Portas lógicas: entendendo os tipos e


características

COMPARTILHE
Camila Pessôa
22 de Novembro
Introdução
Portas lógicas desempenham um papel crucial em uma variedade de dispositivos,
desde o microcontrolador de um simples microondas até os circuitos sofisticados
de computadores super modernos, com capacidade de processamento avançada.

Apesar de ser um assunto importante que, geralmente, nos acompanha desde o


início da trajetória nos estudos sobre tecnologia, é comum que também surjam
dúvidas em relação a esse tema devido à sua complexidade.

Confira neste artigo:


Introdução
Circuitos Integrados
Porta Lógica AND (E)
Porta Lógica OR (OU)
Porta Lógica NOT (Negação)
Porta Lógica XOR (OU exclusivo)
Porta Lógica NAND (Não E)
Porta NOR (NÃO OU)
Porta Lógica XNOR (Negação do OU exclusivo)
Conclusão

Pensando nisso, ao longo desse artigo, vamos compreender de uma vez por todas o
que são as portas lógicas em nível material e abstrato, qual sua importância, e como
funcionam as expressões lógicas nos sistemas que desenvolvemos.

Bora lá?
Circuitos Integrados
Não é novidade que os computadores modernos funcionam com componentes
eletrônicos. Coleções de capacitores, resistores, diodos e transistores, quando
associados a uma placa, são responsáveis pelo controle do fluxo da corrente, ou
seja, fazem o controle de pulsos/sinais digitais para a placa.

Tudo bem, mas o que isso significa?

Isso implica na capacidade de permitir ou bloquear a passagem de pulsos


eletrônicos, assemelhando-se a uma porta, que abre e fecha. Por sua vez, esses
sinais são interpretados como “Ligado” ou “Desligado”, “1” ou “0” , “Sim” ou “Não”,
“Verdadeiro” ou “Falso”. Isso te lembrou alguma coisa?

Fonte: https://gifer.com/en/1Vv

Sim, são os binários! A base de toda a programação tem sua parte física, toda a
combinação de códigos binários é interpretada por sua representação dos níveis de
tensão elétrica. Não é um número de fato, é um estado, ligado e desligado!

Além dos binários, talvez você tenha associado o conceito de verdadeiro e falso há
práticas muito comuns no universo da programação, que são os valores booleanos
True e False. Sim, essa associação está correta! Antes das pessoas imaginarem os
computadores como são hoje, a lógica desenvolvida por George Boole já tinha um
papel importante na adaptação desses conceitos que chegaram ao mundo da
eletrônica digital apenas no século XX, com Claude Shannon.

Shannon analisou os circuitos e buscou aplicar a teoria de Boole para solução de


problemas, que resultou no que conhecemos como Portas Lógicas.
problemas, que resultou no que conhecemos como Portas Lógicas.

Sintetizando, é a partir dessa premissa que os computadores modernos são


capazes de criar e processar tudo que realizamos de forma digital até então, como
imagens, músicas, texto, softwares dos simples aos mais complexos e etc. A beleza
disso é trabalhar com um conceito que parece ser simples e transformá-lo em
coisas incríveis!

Qualquer sistema digital tem sua base construída por portas lógicas, de
microprocessadores como arduino a computadores com processadores mais
avançados. Os sistemas digitais são construídos com circuitos lógicos agrupados e
embutidos em Circuitos Integrados(CI), que são os componentes utilizados para
cumprir tarefas específicas.

Fonte: https://www.usinainfo.com.br/porta-logica/

Nesse sentido, as portas lógicas podem ser utilizadas desde um nível de Integração
de Ultra Larga Escala (ULSI - Ultra-large-scale Integration), que se caracteriza por
um grupo de circuitos integrados com mais de 100 mil portas lógicas, até circuitos
um grupo de circuitos integrados com mais de 100 mil portas lógicas, até circuitos
digitais mais simples, como na Integração em Pequena Escala (SSI - Short Scale of
Integration).

As combinações realizadas com portas lógicas podem ser chamadas de


expressões lógicas e permitem a descrição entre a tomadas de decisões, que são
as saídas dos circuitos lógicos, e os inputs (entradas de informação). Podemos
chamar a matemática das expressões lógicas de álgebra de chaveamento. O
funcionamento é semelhante ao da álgebra que estudamos no ensino médio, com
letras ou símbolos que representam operações lógicas e operadores. No entanto, há
alguns pontos que distinguem a álgebra de chaveamento:

Há somente dois resultados possíveis dentro de uma operação lógica: 0


que indica falso ou 1 que indica verdadeiro.

Para representar e analisar os circuitos lógicos e seus resultados, algumas


técnicas podem ser utilizadas, tais como a tabela verdade, diagramas de
tempo, símbolos esquemáticos e **linguagens de descrição.

Os três tipos principais de portas lógicas são: AND, OR, NOT.

Para o desenvolvimento de software, os circuitos lógicos atuam com condições para


que um determinada ação ocorra. Eles recebem uma entrada com o estado em
binário, realizam a operação e devolvem o resultado.

Nesse momento, talvez surja a dúvida sobre " como devo representar esses valores
binários? 0 e 1? Sim e Não? Verdadeiro e falso?"

Podemos utilizar todas essas formas de representação, conforme apresenta o


quadro a seguir:

Valor Estado Nível Lógico Verdadeiro/Falso

0 Desligado LOW Falso

1 Ligado HIGH Verdadeiro

Os valores nível lógico alto (HIGH) e nível lógico baixo(LOW) estão relacionados à
tensão da corrente elétrica, em que HIGH é o máximo e LOW é desligado. Não
devemos confundir com a complexidade das operações lógicas.

Já entendemos que as portas lógicas armazenam estados de tensão elétrica que


são convertidos em sinais binários. Em decorrência disso, realizam determinados
tipos de operações e devolvem um valor como resultado, culminando no que
tipos de operações e devolvem um valor como resultado, culminando no que
entendemos por expressão lógica.

Vamos conhecer algumas dessas operações através das portas lógicas a seguir!

Porta Lógica AND (E)


Essa porta pode aceitar como entrada (input) A e B, e aceita dois operandos, que
são binários simples, ou seja, 0 e 1, representando respectivamente desligado e
ligado.

No uso cotidiano de computadores a aplicação desse conceito é realizada com


frequência na transferência de informações da memória para a CPU, pois garante
que o bit de origem seja o mesmo de destino. Além disso, o “AND” pode
corresponder a uma instrução If , ou seja uma estrutura condicional “SE”, permitindo
a criação de várias condições dentro do seu programa.

Vamos entender analisando o seu funcionamento?

A figura que representa a porta AND é a seguinte:

A e B são as entradas, que por sua vez são multiplicadas e a saída, ou seja, o
resultado é C.

Vamos entender de uma forma ainda mais simples. Abaixo nós temos um circuito em
série para acender uma lâmpada que possui duas chaves. A lâmpada somente irá
acender se as chaves A e B estiverem fechadas, ou seja, ligadas (com o valor de 1),
pois assim o circuito ficará fechado e a corrente elétrica irá passar.

Fonte: CreativeOps

A partir da premissa da multiplicação dos valores lógicos, é possível criar uma


tabela-verdade para entendermos as entradas de valores, qual o caso em que a
lâmpada ficará acesa e quais os resultados obtidos.
MATRICULE-SE

Porta AND (A.B = C)

Entrada A Entrada B Saída C Verdadeiro/Falso

0 0 0 Falso

1 0 0 Falso

0 1 0 Falso

1 1 1 Verdadeiro

Conforme é apresentado na tabela, “0” representa o estado desligado e “1” ligado.


Porta Lógica OR (OU)
A porta OR simula uma adição ou soma de binários. Analise a seguinte imagem:

Novamente A e B representam a entrada de 0 ou 1, o símbolo arqueado com as


extremidades pontiagudas é a representação da operação de adição, ou seja, o
operador OR.

E o que essa expressão significa na prática?

A porta OR produz uma saída verdadeira (1) quando pelo menos uma das entradas é
verdadeira (1). Na programação, por exemplo, a porta OR é usada em operações
lógicas para criar condições em que uma ação ocorrerá se pelo menos uma das
condições for verdadeira.

Vamos entender com o circuito simples? Analise a imagem:

O que acontece em nosso circuito? A lâmpada irá acender se a chave A ou B estiver


ligada, ou seja, se o seu valor corresponder a 1. Interessante como é semelhante a
lógica de programação, não é verdade? Vamos analisar a tabela na sequência para
entendermos os resultados esperados através das operações com a porta Lógica
OR:

Porta OR (A+B = C)

Entrada A Entrada B Saída C Verdadeiro/Falso

0 0 0 Falso

0 1 1 Verdadeiro

1 0 1 Verdadeiro

1 1 1 Verdadeiro
1 1 1 Verdadeiro

Porta Lógica NOT (Negação)


Imagine que você tenha um botão "Ativar/Desativar" em uma interface de usuário de
um software em desenvolvimento. A ideia é alternar o estado do sistema sempre
que o botão for pressionado. Você pode utilizar a porta NOT, pois com sua
aplicação é possível inverter o valor de um estado.

A porta NOT funciona como um inversor e possui somente uma entrada ou


operando A, um dígito 0 ou 1. Sua utilização em nível de hardware também é
caracterizada pela inversão de um sinal, como na criação de memórias de acesso
aleatório (RAM) ou na execução de operações de negação.

Ok, entendemos que a porta NOT inverte o valor recebido, mas podemos consolidar
esse aprendizado através das imagens a seguir:

A bola na ponta direita do triângulo deitado significa que há uma inversão. Por fim, a
expressão C = A representa que o resultado é a inversão do dígito de entrada.

Sendo assim, a tabela-verdade se apresenta da seguinte forma:

Porta NOT (C = A)

Entrada A Saída C =A Verdadeiro/Falso

0 1 Verdadeiro

1 0 Falso

Agora, confira a imagem com um circuito que representa esse processo:

Note que, na imagem acima, temos uma lâmpada ligada a uma fonte de tensão. O
botão A começa com o nível lógico alto e a lâmpada fica apagada. Quando o botão
A for clicado, o seu estado irá mudar para um nível lógico baixo e a lâmpada
A for clicado, o seu estado irá mudar para um nível lógico baixo e a lâmpada
acenderá.

A partir das principais operações, houve a criação de variações para ampliar as


possibilidades. Vamos conhecer essas variações a seguir!

Porta Lógica XOR (OU exclusivo)


O OU exclusivo, também conhecido como disjunção exclusiva, tem como principal
função verificar a igualdade entre os valores de entrada, e por isso é aplicado na
criação de testadores. A saída será verdadeira se, e somente se, as duas entradas
forem diferentes.

Dessa forma, o resultado será falso sempre que os valores de A e B forem iguais.

Portas XOR em desenvolvimento de software podem ser úteis para comparação de


dois conjuntos de dados. É possível encontrar elementos que são exclusivos em
cada conjunto. Por exemplo, se você tem duas listas e quer encontrar os elementos
que estão em apenas uma delas, a lógica XOR pode funcionar. Por outro lado, em
nível de hardware, o conceito de portas XOR são utilizados para verificar se duas
entradas são diferentes e adicionar números binários.

A animação acima demonstra o funcionamento da porta XOR, que pode ser


sintetizada pela pergunta: A é igual a B? Se sim, o valor C é falso.

Temos as representações do estado de OU exclusivo quando duas portas


apresentam o mesmo nível lógico, estão ligadas ou desligadas, a lâmpada não
acende. Por outro lado, quando existe a diferença entre níveis lógicos na entrada, a

saída é Verdadeiro, ou seja, a lâmpada irá acender.


Assim, a tabela-verdade seria:

Porta XOR (AB = C)

Entrada A Entrada B Saída C Verdadeiro/Falso


Entrada A Entrada B Saída C Verdadeiro/Falso

0 0 0 Falso

0 1 1 Verdadeiro

1 0 1 Verdadeiro

1 1 0 Falso

Porta Lógica NAND (Não E)


Essa porta combina as operações AND(E) e NOT(Negação), funciona como a
inversão da porta AND. O processo para obter o resultado da operação é realizar
primeiro o cálculo da porta AND e depois inverter o seu valor.

As portas NAND são fundamentais para implementação de funções lógicas, um


exemplo é que elas podem ser utilizadas para criação de somadores binários.

Outro caso de uso já no desenvolvimento de sistemas, é quando você precisa


certificar que um usuário não terá acesso ao sistema, se condições como nome de
usuário correto e senha correta não forem atendidas.

Sua representação em um circuito simples funciona como na imagem a seguir:

A lâmpada apaga somente quando as duas entradas estão fechadas, com um valor
de 1, pois isso gera um curto-circuito no circuito. Interessante, não é? Vamos
conferir a tabela-verdade da porta NAND?

Porta NAND (C = A.B)

Entrada A Entrada B Saída C Verdadeiro/Falso


0 0 1 Verdadeiro

1 0 1 Verdadeiro

0 1 1 Verdadeiro

1 1 0 Falso

Porta NOR (NÃO OU)


A porta NOR é a negação dos valores de saída da porta OR.

Um caso para seu uso é durante a construção de sistema de controle de iluminação,


você pode criar uma condição de desligamento geral com a porta NOR: SE nenhuma
das condições de acionamento das luzes for verdadeira, todas as luzes se
apagarão.

Assim como a porta NAND, a porta NOR também é uma porta universal e pode ser
usada para implementar qualquer função lógica em circuitos digitais. Vamos
conhecer sua simbologia a seguir:

Como podemos notar, a bolinha na saída indica a negação da operação de com os


dados de entrada. O resultado é algo similar a representação do circuito simples
abaixo:

No circuito, a lâmpada fica acesa apenas quando todas as entradas são 0.

Podemos representar a tabela-verdade da porta NOR através da expressão C = A+B


. Vamos analisar na sequência os valores de saída?

Porta NOR ( C = A+B )

Entrada A Entrada B Saída C Verdadeiro/Falso


Entrada A Entrada B Saída C Verdadeiro/Falso

0 0 1 Verdadeiro

0 1 0 Falso

1 0 0 Falso

1 1 0 Falso

Porta Lógica XNOR (Negação do


OU exclusivo)
A negação do OU Exclusivo , conhecida também como NOR, que significa
coincidência, resulta em um valor de alto nível se, e somente se, todas as variáveis
de entrada forem iguais.

A sua representação algébrica consiste em AB e o seu símbolo é a imagem do XOR


com a bolinha de negação em sua saída, como na imagem a seguir:

A Porta XNOR funciona como um comparador de igualdade, pois identifica valores


de entrada iguais. Vamos entender com o desenho de um circuito simples?

A lâmpada se mantém acesa quando A e B apresentam valores iguais e apagada


quando as entradas possuem níveis lógicos diferentes.

A representação da tabela-verdade segue o princípio de inversão do resultado de


saída da porta NOR, que é:

Porta XNOR (AB = C)

Entrada A Entrada B Saída C Verdadeiro/Falso

0 0 1 Verdadeiro
0 0 1 Verdadeiro

0 1 0 Falso

1 0 0 Falso

1 1 1 Verdadeiro

Sua expressão completa pode ser definida como C =AB = AB + AB = A ⊙ B

Conclusão
Até aqui aprendemos muito sobre as portas lógicas, mas você pode estar se
perguntando “Como tudo isso ajuda aprimorar minhas habilidade de dev?”.

A escolha da porta lógica adequada nos permite compreender o funcionamento dos


computadores em nível de hardware e também de software. Assim, é possível
desenvolver a lógica de seus programas com o estudo das expressões e suas
representações nas condições que o sistema precisa.

Nesse sentido, é possível utilizar tudo que abordamos sobre portas lógicas para
otimizar programas e seus resultados, a partir da abstração de sua lógica de
funcionamento. Não é incrível?!

Isso significa que não basta saber o que são ou quais são as portas lógicas, ou
mesmo decorar as saídas de todas as expressões. O fundamental é entender como
o seu funcionamento impacta a sua atuação como pessoa desenvolvedora.

Lembrando que as portas lógicas podem ter mais de uma ou duas entradas, assim
como existem diversas combinações entre expressões para a criação de sistemas.
Dessa forma, você pode aprofundar os estudos sobre o tema e exercitar sempre!

Para saber mais


Curso de HTTP: entendendo a web por baixo dos panos
Porta NOT
Curso de Arquitetura de computadores: por trás de como seu programa
funciona

SISTEMAS DIGITAIS - princípios e aplicações 11ª edição


SISTEMAS DIGITAIS - princípios e aplicações 11ª edição
Entenda o sistema de Código Binário
Ada Lovelace, Charles Babbage e ENIAC: uma breve história da
computação
Decifrando Alan Turing: sua vida e trajetória no mundo da tecnologia

School physics
Newton Braga - a Álgebra de Boole
IFSC Eletrônica Digital 1 - Graduação

Camila Pessôa

Olá, sou a Camila ! Tenho 33 anos, sou mãe e ingressei na área de tecnologia por meio da
robótica educacional. Participei do Bootcamp { Reprograma } com foco em Back-End /Node.js e
curso Sistemas de Informação.Atualmente faço parte do Scuba-Team e tenho grande paixão
por educação e tecnologia, pois acredito que essa combinação é transformadora!

Artigo Anterior Próximo Artigo

Estrutura de uma URL O que é gerenciamento de identidade e


acesso (IAM)?
Veja outros artigos sobre
DevOps

Quer mergulhar em
tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do


mercado de trabalho, ciência e desenvolvimento de software

Escreva seu email

ME INSCREVA

Nossas redes e apps

Institucional
Sobre nós

Trabalhe conosco

Para Empresas

Para Sua Escola

Política de Privacidade

Compromisso de Integridade

Termos de Uso

Status

A Alura

Formações

Como Funciona

Todos os cursos

Depoimentos

Instrutores(as)

Dev em <T>

Luri by ChatGPT

Conteúdos
Alura Cases

Imersões

Artigos

Podcasts

Artigos de educação
corporativa

Fale Conosco

Email e telefone

Perguntas frequentes

Novidades e Lançamentos

Email* ENVIAR

CURSOS

Cursos de Programação
Lógica | Python | PHP | Java | .NET | Node JS | C | Computação | Jogos | IoT

Cursos de Front-end
HTML, CSS | React | Angular | JavaScript | jQuery

Cursos de Data Science


Ciência de dados | BI | SQL e Banco de Dados | Excel | Machine Learning | NoSQL |
Estatística
Cursos de Inteligência Artificial
IA para Programação | IA para Dados

Cursos de DevOps
AWS | Azure | Docker | Segurança | IaC | Linux

Cursos de UX & Design


Usabilidade e UX | Vídeo e Motion | 3D

Cursos de Mobile
React Native | Flutter | iOS e Swift | Android, Kotlin | Jogos

Cursos de Inovação & Gestão


Métodos Ágeis | Softskills | Liderança e Gestão | Startups | Vendas

Você também pode gostar