Informática Numaboa - Referências
Lógica Booleana
Qui 11 Nov 2004 10:44 |
- Detalhes
- Categoria: Gerais
- Atualização: Sábado, 27 Fevereiro 2010 17:31
- Autor: vovó Vicki
- Acessos: 17602
A lógica booleana é muito simples e, como todo mundo sabe, coisas simples podem se tornar muito complexas e paradoxalmente confusas. É comum que iniciantes fiquem perdidos quando entram em contato com este assunto pela primeira vez, por isso resolvi incluir este tema no Oráculo de Referências. Espero poder ajudar a diminuir um pouco as dúvidas que geralmente atormentam os que começam.
Sabemos que um bit pode ter apenas dois valores: 0 ou 1. Podemos também admitir que 0 é igual a Falso e que 1 é igual a Verdadeiro. Aplicando alguns conceitos lógicos a estes valores podemos entender com facilidade a Lógica Booleana. Apenas quatro tópicos serão abordados:
- E Lógico (AND)
- OU Lógico (OR)
- OU-Exclusivo Lógico (XOR)
- Negação (NOT)
Exemplo: tomemos dois campos para a entrada de dados (um para nome e outro para número de telefone) e um botão com OK. Apenas se AMBOS os campos contiverem dados o programa deve continuar. Agora o exercício de lógica:
O campo NOME está vazio? -> Se sim: NomeOK é falso -> Se não: NomeOK é verdadeiro O campo FONE está vazio? -> Se sim: FoneOK é falso -> Se não: FoneOK é verdadeiro Ao clicar o botão OK as seguintes condições são testadas: -> se NomeOK = verdadeiro E FoneOk = verdadeiro então ... continua o programa (continua = verdadeiro) -> se NomeOK = verdadeiro E FoneOK = falso então ... pára o programa (continua = falso) -> se NomeOK = falso E FoneOk = verdadeiro então ... pára o programa (continua = falso) -> se NomeOK = falso E FoneOk = falso então ... pára o programa (continua = falso)
Transformando verdadeiro em 1 e falso em 0, obtemos a seguinte tabela:
NomeOK | FoneOK | Resultado | |||
Verdadeiro | 1 | Verdadeiro | 1 | Verdadeiro | 1 |
Verdadeiro | 1 | Falso | 0 | Falso | 0 |
Falso | 0 | Verdadeiro | 1 | Falso | 0 |
Falso | 0 | Falso | 0 | Falso | 0 |
O E Lógico (AND), portanto, significa que o resultado SÓ É VERDADEIRO SE AMBAS AS CONDIÇÕES FOREM VERDADEIRAS. Falso e verdadeiro também podem indicar o estado de bits, portanto, podemos efetuar uma operação de E Lógico (como na tabela acima) entre dois bits ou numa sequência de bits. Tomemos como exemplo a operação 231 E 123. Como sabemos que a operação lógica AND é feita bit a bit, precisamos dos valores binários desses dois números para efetuar a operação:
Decimal | Binário | |
231 | 1 1 1 0 0 1 1 1 | |
AND | 123 | 0 1 1 1 1 0 1 1 |
Resultado | 099 | 0 1 1 0 0 0 1 1 |
Observe que apenas nas posições onde os dois bits têm valor 1 o resultado também possui bits com valor 1, portanto, 231 AND 123 = 99.
:::: :::: OR ::::Exemplo: se você me insultar OU fizer rosquinha eu não vou gostar! Partindo deste princípio, as opções são as seguintes:
-> se Insulto = verdadeiro OU Rosquinha = verdadeiro então ... não gosto (irritação verdadeira) -> se Insulto = verdadeiro OU Rosquinha = falso então ... também não gosto (irritação verdadeira) -> se Insulto = falso OU Rosquinha = verdadeiro então ... continuo não gostando (irritação verdadeira) -> se Insulto = falso OU Rosquinha = falso então ... tudo bem (irritação falsa)
Transformando verdadeiro em 1 e falso em 0, obtemos a seguinte tabela:
Insulto | Rosquinha | Resultado | |||
Verdadeiro | 1 | Verdadeiro | 1 | Verdadeiro | 1 |
Verdadeiro | 1 | Falso | 0 | Verdadeiro | 1 |
Falso | 0 | Verdadeiro | 1 | Verdadeiro | 1 |
Falso | 0 | Falso | 0 | Falso | 0 |
O OU Lógico (OR), portanto, significa que o resultado SÓ É FALSO SE AMBAS AS CONDIÇÕES FOREM FALSAS. Note que o OU Lógico é exatamente o inverso do E Lógico. Falso e verdadeiro também podem indicar o estado de bits, portanto, podemos efetuar uma operação de OU Lógico entre dois bits (como na tabela acima) ou numa sequência de bits. Tomemos como exemplo a operação 231 OU 107. Como sabemos que a operação lógica OR também é feita bit a bit, precisamos dos valores binários desses dois números para efetuar a operação:
Decimal | Binário | |
231 | 1 1 1 0 0 1 1 1 | |
OR | 107 | 0 1 1 0 1 0 1 1 |
Resultado | 239 | 1 1 1 0 1 1 1 1 |
Observe que, apenas nas posições onde os dois bits têm valor 0 o resultado também possui bits com valor 0, portanto, 231 OR 107 = 239.
:::: :::: XOR ::::Exemplo: se você me insultar OU fizer rosquinha eu não vou gostar! Porém, se você fizer ambos simultaneamente, eu acabo com você ... vou te EXCLUIR. Partindo deste princípio, as opções são as seguintes:
-> se Insulto = verdadeiro XOR Rosquinha = verdadeiro então ... te arrebento e a irritação passa (irritação falsa) -> se Insulto = verdadeiro XOR Rosquinha = falso então ... não gosto, mas não te arrebento (irritação verdadeira) -> se Insulto = falso XOR Rosquinha = verdadeiro então ... também não gosto e não te arrebento (irritação verdadeira) -> se Insulto = falso XOR Rosquinha = falso então ... tudo bem (irritação falsa)
Transformando verdadeiro em 1 e falso em 0, obtemos a seguinte tabela:
Insulto | Rosquinha | Resultado | |||
Verdadeiro | 1 | Verdadeiro | 1 | Falso | 0 |
Verdadeiro | 1 | Falso | 0 | Verdadeiro | 1 |
Falso | 0 | Verdadeiro | 1 | Verdadeiro | 1 |
Falso | 0 | Falso | 0 | Falso | 0 |
O OU-Exclusivo Lógico (XOR), portanto, significa que o resultado SÓ É VERDADEIRO SE UMA DAS CONDIÇÕES FOR FALSA. Falso e verdadeiro também podem indicar o estado de bits, portanto, podemos efetuar uma operação de OU-Exclusivo Lógico entre dois bits (como na tabela acima) ou numa sequência de bits. Tomemos como exemplo a operação 77 XOR 25. Como sabemos que a operação lógica XOR também é feita bit a bit, precisamos dos valores binários desses dois números para efetuar a operação:
Decimal | Binário | |
77 | 0 1 0 0 1 1 0 1 | |
XOR | 25 | 0 0 0 1 1 0 0 1 |
Resultado | 84 | 0 1 0 1 0 1 0 0 |
Observe que apenas nas posições onde os bits são diferentes o resultado possui bits com valor 1, portanto, 77 XOR 25 = 84. Um aspecto interessante da operação XOR é que ela é reversível: se fizermos um XOR do resultado com o primeiro operando, obtemos o valor do segundo operando. Da mesma forma, se fizermos um XOR do resultado com o segundo operando, obtemos o primeiro operando. Outra característica é que fazendo o XOR de um número com ele mesmo o resultado sempre será zero. Faça os testes e verifique
:::: :::: NOT ::::A Negação (NOT) é apenas a inversão de bits. 1 se transforma em 0 e 0 se transforma em 1, portanto, podemos negar apenas UM operando.
Decimal | Binário | |
NOT | 25 | 0 0 0 1 1 0 0 1 |
Resultado | 230 | 1 1 1 0 0 1 1 0 |