Saltar al contenido

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)