Artigo original: Boolean Algebra Truth Table Tutorial – XOR, NOR, and Logic Symbols Explained

Todos nós amamos computadores. Eles podem fazer muitas coisas incríveis. Em algumas décadas, os computadores revolucionaram completamente quase todos os aspectos da vida humana.

Eles podem realizar tarefas de vários graus de sofisticação, tudo simplesmente invertendo zeros e uns. É notável ver como uma ação tão simples pode levar a tanta complexidade.

Tenho certeza, no entanto, de que todos vocês sabem que tal complexidade não pode ser alcançada (na prática) apenas invertendo os números aleatoriamente. De fato, há algum raciocínio por trás disso. Existem regras que regem a maneira como isso deve ser feito. Neste artigo, discutiremos essas regras e veremos como elas governam a maneira como os computadores "pensam".

O que é a álgebra booleana?

As regras que mencionei acima são descritas por um campo da matemática chamado Álgebra Booleana.

Em seu livro de 1854, o matemático britânico George Boole propôs um conjunto sistemático de regras para a manipulação dos valores de verdade. Essas regras deram uma base matemática para lidar com proposições lógicas. Esses conjuntos de fundamentos levaram ao desenvolvimento da Álgebra Booleana.

Para entender melhor a Álgebra Booleana, primeiro temos que entender as semelhanças e diferenças entre a Álgebra Booleana e outras formas de Álgebra.

A álgebra, em geral, lida com o estudo de símbolos matemáticos e as operações que podem ser realizadas nesses símbolos.

Esses símbolos não têm um significado próprio. Eles representam alguma outra "quantidade". É essa "quantidade" que dá algum valor a esses símbolos e é nessa "quantidade" que as operações estão realmente sendo realizadas.

A Álgebra Booleana também lida com símbolos e com as regras que governam as operações nesses símbolos, mas a diferença está no que esses símbolos representam.

No caso da Álgebra comum, os símbolos representam os números reais, enquanto, na Álgebra Booleana, eles representam os valores de verdade.

A imagem abaixo mostra todo o conjunto de números reais. O conjunto de números reais inclui números naturais (1, 2, 3, 4 ....), números inteiros (todos os números naturais, incluindo o 0 e os negativos: .....-2, -1, 0, 1, 2, 3 ...) e assim por diante. A Álgebra comum lida com todo esse conjunto de números.

Os valores de verdade, em comparação, consistem em um conjunto de apenas dois valores: Falso e Verdadeiro. Aqui, gostaria de salientar o fato de que podemos usar qualquer outro símbolo para representar esses valores.

Por exemplo, em Ciência da Computação, representamos esses valores, em geral, usando 0 e 1. 0 é usado para Falso e 1 para Verdadeiro.

Você também pode fazer isso de maneiras mais sofisticadas, representando valores de verdade com alguns outros símbolos, como Gatos e Cães ou Bananas e Laranjas.

O ponto aqui é que o significado interno desses símbolos permanecerá o mesmo, independentemente do símbolo que você usar. Certifique-se, porém, de não alterar os símbolos durante a execução das operações.

Agora a questão é que se verdadeiro, falso, 0 e 1 são apenas as representações, o que exatamente eles estão tentando representar?

O significado subjacente por trás dos valores de verdade vem do campo da Lógica, onde os valores de verdade são usados para dizer se uma proposição é "Verdadeira" ou "Falsa". Aqui, os valores de verdade representam a relação de uma proposição com a verdade, isto é, se a proposição é verdadeira ou falsa.

Uma proposição é apenas uma declaração como: "Todos os gatos são fofos".

Se a proposição acima for verdadeira, atribuímos a ela o valor de verdade de "Verdadeiro" ou "1". Caso contrário, atribuímos a ela "Falso" ou "0".

Na eletrônica digital, os valores de verdade são usados para representar os estados "Ligado" e "Desligado" dos circuitos eletrônicos. Discutiremos mais sobre isso mais adiante neste artigo.

Operações booleanas e as tabelas verdade

Da mesma forma que na Álgebra comum, a Álgebra Booleana também possui operações que podem ser aplicadas aos valores para obter alguns resultados. Essas operações, contudo, não são semelhantes às da álgebra como porque, como discutimos anteriormente, a álgebra booleana funciona com valores de verdade em vez de números reais.

A álgebra booleana tem três operações básicas.

OR (em português, OU): também conhecida como Disjunção. Essa operação é executada com duas variáveis booleanas. A saída da operação OR será 0 quando os dois operandos forem 0. Caso contrário, será 1.

Para obter uma imagem mais clara do que essa operação faz, podemos visualizá-la com a ajuda de uma Tabela Verdade abaixo.

Tabelas verdade nos dão uma representação interessante do que fazem as operações booleanas, além de servirem como uma ferramenta útil para realizar as operações booleanas.

		Operação OR

Variável 1	Variável 2	Resultado
  0		0		0
  0		1		1
  1		0		1
  1		1		1

AND (em português, E): também conhecida como Conjunção. Essa operação é executada com duas variáveis booleanas. A saída das operações AND será 1 quando os dois operandos forem 1. Caso contrário, será 0. A representação da tabela verdade é a seguinte.

		Operação AND

Variável 1	Variável 2	Resultado
  0		0		0
  0		1		0
  1		0		0
  1		1		1

NOT (em português, NÃO): também conhecida como Negação. Essa operação é executada apenas com uma variável. Se o valor da variável for 1, a operação simplesmente converte o valor em 0 e, se o valor da variável for 0, ela converte o valor em 1.

	Operação NOT

Variável 1	Resultado
  0		1	
  1		0			

Álgebra booleana e os circuitos digitais

Após seu desenvolvimento inicial, a Álgebra Booleana, por muito tempo, permaneceu um daqueles conceitos em Matemática que não teve uma aplicação prática significativa.

Na década de 1930, Claude Shannon, um matemático americano, percebeu que a Álgebra Booleana poderia ser usada em circuitos onde as variáveis binárias  (0 e 1) poderiam representar os sinais de tensão "baixa" e "alta" ou os estados "ligado" e "desligado".

Essa ideia simples de fazer circuitos com a ajuda da Álgebra Booleana levou ao desenvolvimento da Eletrônica Digital, que contribuiu fortemente para o desenvolvimento de circuitos para computadores.

Os circuitos digitais implementam Álgebra Booleana com a ajuda de Portas Lógicas. Portas lógicas são os circuitos que representam uma operação booleana. Por exemplo, uma porta OR representará uma operação OR. Isso também vale para os portões NOT e AND.

Juntamente com as portas lógicas básicas, também temos portas lógicas que podem ser criadas usando a combinação das portas lógicas básicas.

NAND (em português, NÃO E): a porta NAND é formada pela combinação das portas NOT e AND. A porta NAND tem como resultado 0 se as duas entradas forem 1. Caso contrário, seu valor é 1.

A porta NAND tem a propriedade da Completude Funcional, o que significa que qualquer função booleana pode ser implementada simplesmente utilizando apenas uma combinação de portas NAND.

		Porta NAND

Variável 1	Variável 2	Resultado
  0		0		1
  0		1		1
  1		0		1
  1		1		0

NOR (em português, NÃO OU): a porta NOR é formada por uma combinação das portas NOT e OR. A porta NOR tem o resultado de 1 se as duas entradas forem 0. Caso contrário, seu valor é 0.

A porta NOR, Assim como a porta NAND, tem a propriedade da Completude Funcional (ver acima), o que significa que qualquer função booleana pode ser implementada simplesmente utilizando apenas uma combinação de portas NOR.

		Porta NOR

Variável 1	Variável 2	Resultado
  0		0		1
  0		1		0
  1		0		0
  1		1		0

A maioria dos circuitos digitais é construída usando portas NAND ou NOR devido à sua propriedade de completude funcional e também porque são fáceis de fabricar.

Além das portas mencionadas acima, também temos alguns tipos especiais de portas que servem a um propósito específico. São elas:

XOR (em português, OU EXCLUSIVO): a porta XOR, ou "eXclusive-OR", é um tipo especial de porta lógica que retorna 0 como resultado se as duas entradas forem 0 ou 1. Caso contrário, ela retorna 1.

		Porta XOR

Variável 1	Variável 2	Resultado
  0		0		0
  0		1		1
  1		0		1
  1		1		0

XNOR (em português, NÃO OU EXCLUSIVO): a porta XNOR, ou "eXclusive-NOR", é um tipo especial de porta lógica que retorna 1 como resultado se as duas entradas forem 0 ou 1. Caso contrário, ela retorna 0.

		Porta XNOR

Variável 1	Variável 2	Resultado
  0		0		1
  0		1		0
  1		0		0
  1		1		1

Conclusão

Com isso, podemos agora concluir nossa discussão sobre Álgebra Booleana. Espero que, agora, você tenha uma imagem clara do que a Álgebra Booleana é.

Isso definitivamente não é tudo que você precisa saber sobre Álgebra Booleana. A Álgebra Booleana tem muitos conceitos e detalhes que não pudemos discutir neste artigo.