Aldeia Numaboa
Um portal diferente em Português do Brasil
Informática da Aldeia

Tutoriais
Home Informática Tutoriais e Programação Art of Assembly AoA - Cap.2 - Funções booleanas e tabelas lógicas

Na Aldeia

Há 87 visitantes online

3292 registros
2 hoje
10 nesta semana
27 neste mês

Boas vindas: ctoshibr

Estatística

Artigos: 1062
Leituras: 6004629
Arquivados: 21
Downloads: 533
Baixados: 171130
Glossário: 1208
Bibliografia: 25
Links: 90

Visitas de onde

Top 5:
Brasil flag 73%Brasil (36676)
Portugal flag 5%Portugal (2278)
EUA flag 3%EUA (1752)
Holanda flag 0%Holanda (235)
Rússia flag 0%Rússia (211)
50551 visitas de 97 países

Hoje:957
Ontem:2643
No mês:24736
Mês passado:25815
Total:50551
Recorde:3037
No dia:04.03.10
Leituras hoje:8994
Leituras Total:219046
Bots hoje:206
Dados desde:16.02.2010

Login



Kanji da hora




Faça contato






Qua

21

Fev

2007


19:59

AoA - Cap.2 - Funções booleanas e tabelas lógicas PDF Imprimir Indique esta página
(6 votos, média 3.7 de 5)


Image Uma expressão booleana é uma sequência de zeros, uns e literais separados por operadores booleanos.

Uma literal é um nome de variável plicada (negada) ou não plicada (por exemplo, A é não plicada; A' é plicada e se lê A linha). Aqui, para nós, todos os nomes de variáveis serão uma única letra do alfabeto. Uma função booleana é uma expressão booleana específica; ela geralmente receberá o nome "F" e possivelmente um subescrito. Por exemplo, considere a seguinte booleana:

F0 = AB + C

Esta função calcula o AND lógico de A e B e depois efetua o OR lógico entre o resultado e C. Se A = 1, B = 0 e C = 1, então F0 retorna o valor 1, pois (1 x 0) + 1 = 1.

Outro modo de representar uma função booleana é através de tabelas lógicas. No capítulo anterior utilizamos estas tabelas para representar as funções AND e OR. Eram as seguintes:

AND01
000
101
Tabela lógica AND
OR01
001
111
Tabela lógica OR

Para operadores binários e duas variáveis de entrada, esta forma de tabela lógica é muito natural e conveniente. No entanto, se considerarmos a função F0, existem três variáveis de entrada e não apenas duas. Felizmente existe um jeito fácil de construir tabelas lógicas para três ou mais variáveis. O exemplo seguinte mostra um dos modos de fazer isto para funções com três ou quatro variáveis:

FC = AB + C BA
00011011
C 0 0001
11111
Função com 3 variáveis
FC = AB + CD BA
00011011
DC 00 0001
010001
100001
111111
Função com 4 variáveis

Nas tabelas lógicas acima, as quatro colunas cinza representam as quatro combinações possíveis de zeros e uns para A e B (B é o bit mais significativo ou da esquerda e A é o bit menos significativo ou da direita). Na segunda tabela, as quatro linhas cinza representam as quatro combinações possíveis de zeros e uns para as variáveis C e D, onde D é o bit mais significativo e C é o menos significativo. A tabela abaixo mostra uma outra forma de representar tabelas lógicas. Esta forma tem duas vantagens em relação às formas mostradas acima - é mais fácil de ser preenchida e permite a representação compacta de duas ou mais funções:

C B A F = ABC F = AB + C F = A + BC
000 000
001 001
010 000
011 011
100 010
101 011
110 011
111 111
Múltiplas funções com 3 variáveis

Observe que a tabela lógica acima contém os valores para três funções distintas de três variáveis. Apesar de podermos criar uma variedade infinita de funções booleanas, elas não são todas únicas. Por exemplo, F = A e F = AA são duas funções diferentes. No entanto, pelo teorema dois, fica fácil demonstrar que estas duas funções são equivalentes, isto é, ambas fornecem exatamente a mesma saída para todas as combinações de entrada. Se fixarmos o número de variáveis de entrada, há um número finito de funções booleanas únicas possíveis. Por exemplo, existem apenas 16 funções booleanas únicas com duas entradas e existem apenas 256 funções booleanas possíveis com três variáveis de entrada. Dadas n variáveis de entrada, existem 2(2^n) funções booleanas únicas com estes n valores de entrada. Para duas variáveis de entrada, 2(2^2) é o mesmo que 24 ou 16 funções diferentes. Com três variáveis de entrada existem 2(2^3) = 28 ou 256 funções possíveis. Quatro variáveis de entrada criam 2(2^4) ou 216 ou 65.536 funções booleanas únicas. Quando lidamos com apenas 16 funções booleanas, é fácil dar um nome para cada função. A tabela a seguir lista as 16 funções booleanas possíveis com duas variáveis de entrada e alguns dos nomes mais comuns das mesmas:

FunçãoDescrição
0Zero ou Desligado. Sempre retorna zero, independentemente dos valores de entrada A e B
1NOR lógico (NOT (A OR B)) = (A + B)'
2Inibição = BA' (B NOT A). Também equivalente a B > A ou A < B
3NOT A. Ignora B e retorna A'
4Inibição = AB' (A NOT B). Também equivalente a A > B ou B < A
5NOT B. Retorna B' e ignora A
6OR-exclusivo (XOR) = A [+] B. Também equivalente a A <> B.
7NAND lógico (NOT (A AND B)) = (A x B)'
8AND lógico = A x B. Retorna A AND B.
9Equivalência = (A = B). Também conhecida como NOR-exclusivo (NOT OR-exclusivo)
10Cópia de B. Retorna o valor de B e ignora o valor de A
11Implicação, B implica A = A + B'. (se B então A). Também equivalente a B >= A
12Cópia de A. Retorna o valor de A e ignora o valor de B
13Implicação, A implica B = B + A' (se A então B). Também equivalente a A >= B
14OR lógico = A + B. Retorna A OR B
15Um ou Ligado. Sempre retorna um, independentemente dos valores de entrada de A e B

Acima de duas variáveis de entrada existem funções demais para nomear. Devido a isto, vamos referenciá-las com números. Por exemplo, F8 refere-se ao AND lógico de A e B para a função com duas entradas e F14 é a operação lógica OR. É claro que o único problema é determinar o número da função. Por exemplo, dada a função de três variáveis F = AB + C, qual é o número que lhe corresponde? Este número é fácil de calcular usando-se a tabela lógica da função (veja a tabela Múltiplas funções com 3 variáveis acima). Se tratarmos os valores de A, B e C como bits de um número binário, com C sendo o mais significante e A o menos significante, eles produzem os números binários que vão de 0 a 7. Para cada sequência binária existe um resultado da função, que pode ser zero ou um. Se tomarmos os resultados obtidos para a função F = AB + C como bits, do bit mais significativo até o menos significativo, obtemos o número binário 1 1 1 1 1 0 0 0. Transformando este binário em decimal obtemos o valor 248, justamente o número da função. Ou seja, das 256 funções possíveis, esta é a de número 248: F248 = AB + C.

Fonte

  • Art of Assembly de Randall Hyde.
  • Tradução meio que livre da vovó Vicki.
Última atualização ( Dom, 19.04.2009 13:02 )
 

Topo

Topo

Exceto onde especificamente citado, todo material deste site está sob Licença Creative Commons