Operadores lógicos
Operadores lógicos servem para realizar operações entre variáveis ou expressões do tipo
Boolean, cujo resultado seja Boolean,
Quase em todas as linguagens de programação existem algumas instruções similares. Trata-se
dos operadores lógicos, And, Or, Not e Xor. Traduzindo para o português os três primeiros
operadores é, (E, Ou, Não).
Se tivermos conhecimento de lógica e números binários, não será difícil identificar e entender
o seu comportamento. Estes operadores servem para unir condições, exemplo, Cor é Amarelo
e não é Branca.
Cor = "Amarela" And Not Cor = "Branca"
No caso de Xor é um pouco mais difícil de entender já que se trata de uma operação especial,
chamada OR exclusiva (Ou exclusiva). O resultado de uma operação Xor é verdadeira quando
os dois operando são diferentes e falso quando os dois operando são iguais. Na prática só
devemos utilizá-la quando estivermos seguro que conhecemos perfeitamente seu
funcionamento.
Operador
Exemplo
Descrição
And
1 And 2
Not
Not 1
Calcula o "Não" lógico do valor binário de um Número.
Or
2 Or 3
Calcula o "Ou" matemático do valor binário de dois números.
Xor
5 Xor 5
Calcula o "Exclusivo-Ou" matemático do valor binário de dois números.
Calcula o "E" matemático do valor binário de dois números.
Os números podem ser, Variant, Boolean, Byte, Short, Integer e Long.
Operador lógico And
Resultado = Expressao AND Expressao
Calcula o "E" lógico de duas expressões booleanas, ou o "E" matemático de dois números
inteiros.
Em caso de duas expressões booleanas, uma operação lógica "E" é realizada. No caso
de dois números inteiros, uma operação numérica "E" é realizada. Os resultados booleanos retornados por este operador é mostrado na tabela a seguir:
A
B
A And B
False
False
True
True
False
True
False
True
False
False
False
True
Print
Print
Print
Print
False Or False
False Or True
True Or False
True Or True
'False
'False
'False
'True
Uma operação And entre dois valores numéricos inteiros, retorna um valor inteiro. Cada bit
correspondente dos valores especificados são combinados de acordo com a tabela a seguir:
A
B
A And B
0
0
1
1
0
1
0
1
0
0
0
1
Print Bin(33, 16)
'0000000000100001
Print Bin(51, 16)
'0000000000110011
Print Bin(33 And 51, 16)'0000000000100001
4
O operador "E" numérico pode ser usado para testar o padrão de bits de um número.
Também pode ser usado para mascarar bits selecionados de um número.
A tabela a seguir apresenta alguns exemplos.
Expressão
Descrição
5 AND 10 = 0
5 = binário 0101
10 = binário 1010
Então 5 AND 10 = 0
5 AND -10 = 8
5 = binário 00000000000000000000000000000101
-10 = binário 11111111111111111111111111110110
Então 5 AND -10 = 4 (binário 100)
10 AND -10 = 4
10 = binário 00000000000000000000000000001010
-10 = binário 11111111111111111111111111110110
Então 10 AND -10 = 2 (binário 10)
O sistema binário ou base 2, é um sistema de numeração posicional, em que todas as
quantidades são representadas com base em dois números, zero e um.
Binário
Valor
Posição
1
1
1
1
1
1
1
64+
32+
16+
8+
4+
2+
1
7
6
5
4
3
2
1
Podemos verificar que lendo da direita para a esquerda, existe um incremento para o dobro do
valor do bit anterior.
Operador lógico Or
Resultado = Expressao Or Expressao
Calcula o "Ou" lógico de duas expressões booleanas, ou o "Ou" matemático de dois números
inteiros.
Em caso de duas expressões booleanas, uma operação lógica "Ou" é realizada. No
caso de dois números inteiros, uma operação numérica "Ou" é realizada.
Os resultados booleanos retornados por este operador é mostrado na tabela a seguir:
A
B
A Or B
False
False
True
True
False
True
False
True
False
True
True
True
Gambas
Print
Print
Print
Print
False Or False
False Or True
True Or False
True Or True
'False
'True
'True
'True
O operador Or numérico leva dois valores inteiros e retorna um valor inteiro. Cada bit
correspondente dos valores especificados são combinados de acordo com a tabela a seguir:
A
B
A Or B
0
0
0
0
1
1
1
0
1
1
1
1
Gambas
Print Bin(33, 16)
'0000000000100001
Print Bin(51, 16)
'0000000000110011
Print Bin(33 Or 51, 16) '0000000000110011
5
Operador lógico Xor
Resultado = Expressao Xor Expressao
Calcula o Or exclusivo de duas expressões booleanas, ou o Or exclusivo de dois números
inteiros.
O operador Xor liga duas expressões booleanas e retorna um valor verdadeiro ou falso. Os
resultados retornados por esta operação é mostrado na tabela a seguir:
A
B
A Xor B
False
False
True
True
False
True
False
True
False
True
True
False
Print
Print
Print
Print
False Xor False
False Xor True
True Xor False
True Xor True
'False
'True
'True
'False
O operador Xor numérica liga dois valores inteiros e retorna um valor inteiro. Cada bit dos
valores especificados correspondentes são combinados de acordo com a seguinte tabela:
A
B
A Xor B
0
0
0
Print Bin(33, 16)
'0000000000100001
0
1
1
Print Bin(51, 16)
'0000000000110011
1
0
1
Print Bin(33 Xor 51, 16)'0000000000010010
1
1
0
Operador lógico Not
Resultado = Not Expressão
Calcula o não lógica de uma expressão.
O operador lógico Not inverte o valor de uma expressão booleana.
A
Not A
True
False
False
True
Print Not True
Print Not False
'False
'True
O operador Not numérico leva um valor inteiro e retorna um valor inteiro. O operador
realmente inverte cada bit da expressão, como mostrado na tabela a seguir:
A
Not A
0
1
1
0
Print Bin(11, 10)
'0000001011
Print Bin(Not 11, 10) '1111110100
Se Expressão for uma String ou um objeto.
Retorna True se Expressão é nula.
Print Not ""
'True
Retorna False se Expressão não é nula.
Print Not "Gambas"
'False
Exemplos.
6
Exemplos
7
Download

Operadores lógicos Operadores lógicos servem para