Operadores lógicos en pascal

Al igual que las relaciones, en las operaciones con operadores lógicos se tienen resultados cuyo valor de verdad toma uno de los valores booleanos true o false. Los operadores lógicos en Pascal son:

NOT

Sintaxis : not operando

Descripción : Invierte el valor de verdad de operando.

Ejemplo:
Si bandera tiene un valor de verdad truenot bandera produce un resultado con valor de verdad false.

AND

Sintaxis: operando.1 and operando.2 

Descripción : Produce un resultado con valor de verdad true cuando ambos operandos tienen valor de verdad true; en cualquier otro caso el resultado tendrá un valor de verdad false.

OR

Sintaxis : operando.1 or operando.2

Descripción : Produce un resultado con valor de verdad false cuando ambos operadores tienen valores de verdad false; en cualquier otro caso el resultado tendrá un valor de verdad true.

XOR

Sintaxis: operando.1 xor operando.2

Descripción : Un operando debe tener valor de verdad true y el otro false para que el resultado tenga valor de verdad true.

Turbo Pascal también permite las siguientes operaciones entre los bits de operandos exclusivamente de tipo entero:

AND 

Sintaxis: operando.1 and operando.2

Descripción: Pone a ceros los bits de operando.2
cuyos correspondientes en operando.1 estén en ceros.

Los valores se pasan a binario, y, sobre cada bit de operando.1 se
realiza la operación and lógica con el correspondiente bit de operando.2.

Ejemplo : 29 and 30 = 28

Cuya forma en binario es:

    0000000000011101 = 29 (operando.1)
and 0000000000011110 = 30 (operando.2)
    _____________________
    0000000000011100 = 28 (resultado)
OR ( o inclusiva )

Sintaxis: operando.1 or operando.2

Descripción: Pone a uno los bits de operando.1 cuyos correspondientes bits enoperando.2 están a uno.

Ejemplo : 17 or 30 = 31

En binario:

   0000000000010001 = 17 (operando.1)
or 0000000000011110 = 30 (operando.2)
   _____________________
   0000000000011111 = 31 (resultado)
XOR ( o exclusiva )

Sintaxis: operando.1 xor operando.2

Descripción: Invierte el estado de los bits de operando.1, cuyos correspondientes en operando.2 están a uno.

Ejemplo: 103 xor 25 = 126 

En binario:

    0000000001100111 = 103 (operando.1)
xor 0000000000011001 = 25  (operando.2)
    ______________________
    0000000001111110 = 126 (resultado)
SHL

Sintaxis : operando.1 shl operando.2 

Descripción : Desplaza hacia la izquierda los bits de operando.1, el número de posiciones establecidas por operando.2.

Los bits que salen por el extremo izquierdo se pierden.

Ejemplo:10 shl2 = 40

En binario:

         0000000000001010 = 10 (operando.1)
shl 2 <= 0000000000101000 = 40 (resultado) 
(operando.2)
SHR

Sintaxis: operando.1 shr operando.2

Descripción: Desplaza hacia la derecha los bits de operando.1 el número de posiciones establecidas por operando.2.

Los bits que salen por el extremo derecho se pierden

Ejemplo : 125 shr 3 = 15

En binario:

         0000000001111101 = 125 (operando.1)
shr 3 => 0000000000001111 = 15  (resultado)
(operando.2)