Pascal - Operadores
Un operador es un símbolo que le dice al compilador que realice manipulaciones matemáticas o lógicas específicas. Pascal permite los siguientes tipos de operadores:
- Operadores aritméticos
- Operadores relacionales
- operadores booleanos
- Operadores de bits
- Establecer operadores
- Operadores de cadena
Analicemos los operadores aritméticos, relacionales, booleanos y de bits uno por uno. Discutiremos los operadores de conjuntos y las operaciones de cadenas más adelante.
Operadores aritméticos
La siguiente tabla muestra todos los operadores aritméticos soportados por Pascal. Asumir variableA tiene 10 y variable B tiene 20, entonces -
Operador | Descripción | Ejemplo |
---|---|---|
+ | Agrega dos operandos | A + B dará 30 |
- | Resta el segundo operando del primero | A - B dará -10 |
* | Multiplica ambos operandos | A * B dará 200 |
/ | Divide el numerador por el denominador | B / A dará 2 |
% | Operador de módulo y resto de después de una división entera | B% A dará 0 |
Operadores relacionales
La siguiente tabla muestra todos los operadores relacionales soportados por Pascal. Asumir variableA tiene 10 y variable B tiene 20, entonces -
Operador | Descripción | Ejemplo |
---|---|---|
= | Comprueba si los valores de dos operandos son iguales o no, si es así, la condición se convierte en verdadera. | (A = B) no es cierto. |
<> | Comprueba si los valores de dos operandos son iguales o no, si los valores no son iguales, la condición se convierte en verdadera. | (A <> B) es cierto. |
> | Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho; si es así, la condición se convierte en verdadera. | (A> B) no es cierto. |
< | Comprueba si el valor del operando izquierdo es menor que el valor del operando derecho, si es así, la condición se convierte en verdadera. | (A <B) es cierto. |
> = | Comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho, si es así, la condición se convierte en verdadera. | (A> = B) no es cierto. |
<= | Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho, si es así, la condición se convierte en verdadera. | (A <= B) es cierto. |
Operadores booleanos
La siguiente tabla muestra todos los operadores booleanos compatibles con el lenguaje Pascal. Todos estos operadores funcionan con operandos booleanos y producen resultados booleanos. Asumir variableA se mantiene verdadero y variable B es falso, entonces -
Operador | Descripción | Ejemplo |
---|---|---|
y | Operador booleano AND llamado. Si ambos operandos son verdaderos, entonces la condición se convierte en verdadera. | (A y B) es falso. |
y entonces | Es similar al operador AND, sin embargo, garantiza el orden en el que el compilador evalúa la expresión lógica. Los operandos de izquierda a derecha y derecha se evalúan solo cuando es necesario. | (A y luego B) es falso. |
o | Operador OR booleano llamado. Si alguno de los dos operandos es verdadero, la condición se vuelve verdadera. | (A o B) es cierto. |
si no | Es similar al OR booleano, sin embargo, garantiza el orden en el que el compilador evalúa la expresión lógica. Los operandos de izquierda a derecha y derecha se evalúan solo cuando es necesario. | (A o bien B) es cierto. |
no | Operador NOT booleano llamado. Se utiliza para invertir el estado lógico de su operando. Si una condición es verdadera, entonces el operador lógico NOT la hará falsa. | no (A y B) es cierto. |
Operadores de bits
Los operadores bit a bit trabajan en bits y realizan operaciones bit a bit. Todos estos operadores trabajan con operandos enteros y producen resultados enteros. La tabla de verdad para bit a bit y (&), bit a bit o (|) y bit a bit no (~) es la siguiente:
pags | q | p & q | p | q | ~ p | ~ q |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 1 |
Suponga si A = 60; y B = 13; ahora en formato binario serán los siguientes:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A ^ B = 0011 0001
~ A = 1100 0011
Los operadores bit a bit admitidos por Pascal se enumeran en la siguiente tabla. Suponga que la variable A tiene 60 y la variable B tiene 13, entonces:
Operador | Descripción | Ejemplo |
---|---|---|
Y | El operador AND binario copia un bit al resultado si existe en ambos operandos. | (A & B) dará 12, que es 0000 1100 |
| | El operador OR binario copia un bit si existe en cualquiera de los operandos. | (A | B) dará 61, que es 0011 1101 |
! | El operador OR binario copia un bit si existe en cualquiera de los operandos. Es lo mismo que | operador. | (A! B) dará 61, que es 0011 1101 |
~ | El operador de complemento binario es unario y tiene el efecto de "voltear" bits. | (~ A) dará -61, que es 1100 0011 en forma de complemento a 2 debido a un número binario con signo. |
<< | Operador binario de cambio a la izquierda. El valor de los operandos de la izquierda se mueve a la izquierda el número de bits especificado por el operando de la derecha. | Un << 2 dará 240, que es 1111 0000 |
>> | Operador de cambio a la derecha binario. El valor de los operandos de la izquierda se mueve hacia la derecha el número de bits especificado por el operando de la derecha. | A >> 2 dará 15, que es 0000 1111 |
Tenga en cuenta que las diferentes implementaciones de Pascal difieren en los operadores bit a bit. Free Pascal, el compilador que usamos aquí, sin embargo, admite los siguientes operadores bit a bit:
Operadores | Operaciones |
---|---|
no | Bit a bit NO |
y | Y bit a bit |
o | O bit a bit |
xor | OR exclusivo bit a bit |
shl | Desplazamiento bit a la izquierda |
Shr | Desplazamiento bit a bit a la derecha |
<< | Desplazamiento bit a la izquierda |
>> | Desplazamiento bit a bit a la derecha |
Precedencia de operadores en Pascal
La precedencia del operador determina la agrupación de términos en una expresión. Esto afecta cómo se evalúa una expresión. Algunos operadores tienen mayor precedencia que otros; por ejemplo, el operador de multiplicación tiene mayor precedencia que el operador de suma.
Por ejemplo x = 7 + 3 * 2; aquí, a x se le asigna 13, no 20 porque el operador * tiene mayor precedencia que +, por lo que primero se multiplica por 3 * 2 y luego se suma a 7.
Aquí, los operadores con mayor precedencia aparecen en la parte superior de la tabla, los que tienen la menor prioridad aparecen en la parte inferior. Dentro de una expresión, los operadores de mayor precedencia se evaluarán primero.
Operador | Precedencia |
---|---|
~, no, | Más alto |
*, /, div, mod y, & | |
|,!, +, - o, | |
=, <>, <, <=,>,> =, en | |
o si no, y luego | Más bajo |