A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Referências

Lógica Booleana

Qui

11

Nov

2004


10:44

(22 votos, média 4.00 de 5) 


Iniciantes 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:

  1. E Lógico (AND)
  2. OU Lógico (OR)
  3. OU-Exclusivo Lógico (XOR)
  4. Negação (NOT)
{faqslider tabs} :::: AND ::::

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:

NomeOKFoneOKResultado
Verdadeiro1 Verdadeiro1 Verdadeiro1
Verdadeiro1 Falso0 Falso0
Falso0 Verdadeiro1 Falso0
Falso0 Falso0 Falso0

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:

DecimalBinário
2311 1 1 0 0 1 1 1
AND1230 1 1 1 1 0 1 1
Resultado0990 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:

InsultoRosquinhaResultado
Verdadeiro1 Verdadeiro1 Verdadeiro1
Verdadeiro1 Falso0 Verdadeiro1
Falso0 Verdadeiro1 Verdadeiro1
Falso0 Falso0 Falso0

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:

DecimalBinário
2311 1 1 0 0 1 1 1
OR1070 1 1 0 1 0 1 1
Resultado2391 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:

InsultoRosquinhaResultado
Verdadeiro1 Verdadeiro1 Falso0
Verdadeiro1 Falso0 Verdadeiro1
Falso0 Verdadeiro1 Verdadeiro1
Falso0 Falso0 Falso0

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:

DecimalBinário
770 1 0 0 1 1 0 1
XOR250 0 0 1 1 0 0 1
Resultado840 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 wink

:::: :::: 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.

DecimalBinário
NOT250 0 0 1 1 0 0 1
Resultado2301 1 1 0 0 1 1 0
:::: {/faqslider}Вадим Логофет Москваказан для костра с треногойотзывы полигонвидеокамеры наблюденияновости видео сегодняarabic language translation in englishполигон ооо

Informações adicionais