OR funciona de forma análoga, pero da como resultado 1 a no ser que los bits de los dos
operandos sean 0, en cuyo caso el resultado es 0. Aplicado a los mismos números que en el
ejemplo de AND,
PRINT
1000
OR
1002
Bit a bit:
1010
1111101000
cuyo resultado es
1111101010
Un programa ejemplo:
10
CLS
20
INPUT
"Mes numero:
30
IF
mes=12
40
GOTO
10
50
PRINT
"Estamos en invierno!"
El operador NOT invierte todos los bits del argumento (convierte el 0 en 1, y viceversa):
10
CLS
20
INPUT
"Mes numero:
30
IF
NOT(mes=6
40
GOTO
10
50
PRINT
"No estamos en verano!"
Observe que se pueden combinar los operadores lógicos, sin más limitación que la longitud de la
línea:
10
INPUT
"Dia del mes:
20
INPUT
"Mes numero:
30
IF
NOT(mes=12
40
CLS:GOTO
50
PRINT
"No es ni diciembre ni enero, pero puede ser un año bisiesto"
El resultado de una expresión de relación es -1 o 0. La representación binaria del número -1 es
una sucesión de bits iguales a 1; para el 0, todos los bits son 0. El resultado de una operación
lógica entre argumentos de este tipo da -1 (verdadero) o 0 (falso).
Añada las siguientes líneas al programa anterior:
60
PRINT
NOT(mes=12
70
PRINT
(mes=12
Si al ejecutar el programa introduce 29 para el día y 2 para el mes, obtendrá el mensaje de la
línea 50, y las líneas 60 y 70 escribirán los resultados de las operaciones.
Finalmente, XOR (OR eXclusivo) produce como resultado 'verdadero' siempre que los
argumentos sean diferentes.
A continuación resumimos todo lo dicho en una tabla, denominada tabla de verdad. Es una
forma muy clara de ilustrar qué sucede en una operación lógica bit a bit.
10
",mes
OR
mes=1
OR
mes=2
",mes
OR
mes=7
OR
mes=8)
",dia
",mes
OR
mes=1)
AND
10
OR
mes=1)
OR
mes=1)
Manual de Amstrad CPC 6128 (revisión 2008) - Página 337
THEN
50
THEN
50
dia=29
THEN
50