Pascal - Operadores
Um operador é um símbolo que diz ao compilador para realizar manipulações matemáticas ou lógicas específicas. Pascal permite os seguintes tipos de operadores -
- Operadores aritméticos
- Operadores relacionais
- Operadores booleanos
- Operadores de bits
- Operadores de conjunto
- Operadores de string
Vamos discutir os operadores aritméticos, relacionais, booleanos e de bits um por um. Discutiremos os operadores de conjunto e as operações de string posteriormente.
Operadores aritméticos
A tabela a seguir mostra todos os operadores aritméticos suportados pelo Pascal. Assumir variávelA contém 10 e variável B contém 20, então -
Operador | Descrição | Exemplo |
---|---|---|
+ | Adiciona dois operandos | A + B dará 30 |
- | Subtrai o segundo operando do primeiro | A - B dará -10 |
* | Multiplica ambos os operandos | A * B dará 200 |
/ | Divide numerador por denominador | B / A dará 2 |
% | Operador de Módulo e o restante após uma divisão inteira | B% A dará 0 |
Operadores Relacionais
A tabela a seguir mostra todos os operadores relacionais suportados por Pascal. Assumir variávelA contém 10 e variável B contém 20, então -
Operador | Descrição | Exemplo |
---|---|---|
= | Verifica se os valores dos dois operandos são iguais ou não, se sim, a condição torna-se verdadeira. | (A = B) não é verdade. |
<> | Verifica se os valores de dois operandos são iguais ou não, se os valores não são iguais, a condição torna-se verdadeira. | (A <> B) é verdade. |
> | Verifica se o valor do operando esquerdo é maior que o valor do operando direito, se sim, a condição torna-se verdadeira. | (A> B) não é verdade. |
< | Verifica se o valor do operando esquerdo é menor que o valor do operando direito, se sim, a condição torna-se verdadeira. | (A <B) é verdade. |
> = | Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se sim, a condição torna-se verdadeira. | (A> = B) não é verdade. |
<= | Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito, se sim, a condição torna-se verdadeira. | (A <= B) é verdadeiro. |
Operadores booleanos
A tabela a seguir mostra todos os operadores booleanos suportados pela linguagem Pascal. Todos esses operadores trabalham em operandos booleanos e produzem resultados booleanos. Assumir variávelA é verdadeiro e variável B é falso, então -
Operador | Descrição | Exemplo |
---|---|---|
e | Operador booleano AND chamado. Se ambos os operandos forem verdadeiros, a condição se torna verdadeira. | (A e B) é falso. |
e depois | É semelhante ao operador AND, mas garante a ordem em que o compilador avalia a expressão lógica. Os operandos da esquerda para a direita e os da direita são avaliados apenas quando necessário. | (A e então B) é falso. |
ou | Operador Booleano OU chamado. Se qualquer um dos dois operandos for verdadeiro, a condição se torna verdadeira. | (A ou B) é verdade. |
se não | É semelhante ao booleano OR, porém, garante a ordem em que o compilador avalia a expressão lógica. Os operandos da esquerda para a direita e os da direita são avaliados apenas quando necessário. | (A ou então B) é verdadeiro. |
não | Operador booleano NOT chamado. Usado para reverter o estado lógico de seu operando. Se uma condição for verdadeira, o operador lógico NOT a tornará falsa. | não (A e B) é verdade. |
Operadores de bits
Operadores bit a bit trabalham em bits e executam operações bit a bit. Todos esses operadores trabalham em operandos inteiros e produzem resultados inteiros. A tabela verdade para bit a bit e (&), bit a bit ou (|) e bit a bit não (~) são as seguintes -
p | 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 |
Suponha que A = 60; e B = 13; agora em formato binário serão os seguintes -
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A ^ B = 0011 0001
~ A = 1100 0011
Os operadores bit a bit suportados pelo Pascal estão listados na tabela a seguir. Suponha que a variável A tenha 60 e a variável B tenha 13, então:
Operador | Descrição | Exemplo |
---|---|---|
E | O operador Binário AND copia um bit para o resultado se ele existir em ambos os operandos. | (A e B) dará 12, que é 0000 1100 |
| | O operador binário OR copia um bit se ele existir em qualquer operando. | (A | B) dará 61, que é 0011 1101 |
! | O operador binário OR copia um bit se ele existir em qualquer operando. É o mesmo que | operador. | (A! B) dará 61, que é 0011 1101 |
~ | O operador de complemento binários é unário e tem o efeito de 'inverter' bits. | (~ A) resultará em -61, que é 1100 0011 na forma de complemento de 2 devido a um número binário com sinal. |
<< | Operador binário de deslocamento à esquerda. O valor dos operandos à esquerda é movido para a esquerda pelo número de bits especificado pelo operando à direita. | Um << 2 dará 240, que é 1111 0000 |
>> | Operador binário de deslocamento à direita. O valor dos operandos à esquerda é movido para a direita pelo número de bits especificado pelo operando à direita. | Um >> 2 dará 15, que é 0000 1111 |
Observe que diferentes implementações de Pascal diferem em operadores bit a bit. Pascal livre, o compilador que usamos aqui, no entanto, suporta os seguintes operadores bit a bit -
Operadores | Operações |
---|---|
não | NÃO bit a bit |
e | E bit a bit |
ou | OR bit a bit |
xor | OR exclusivo bit a bit |
shl | Deslocamento à esquerda |
Shr | Deslocamento bit a bit para a direita |
<< | Deslocamento à esquerda |
>> | Deslocamento bit a bit para a direita |
Precedência de operadores em Pascal
A precedência do operador determina o agrupamento de termos em uma expressão. Isso afeta como uma expressão é avaliada. Certos operadores têm precedência mais alta do que outros; por exemplo, o operador de multiplicação tem precedência mais alta do que o operador de adição.
Por exemplo, x = 7 + 3 * 2; aqui, x é atribuído a 13, não 20, porque o operador * tem precedência mais alta do que +, portanto, primeiro é multiplicado por 3 * 2 e, em seguida, soma 7.
Aqui, os operadores com a precedência mais alta aparecem na parte superior da tabela, aqueles com a mais baixa aparecem na parte inferior. Em uma expressão, os operadores de precedência mais altos serão avaliados primeiro.
Operador | Precedência |
---|---|
~, não, | Altíssima |
*, /, div, mod e, & | |
|,!, +, - ou, | |
=, <>, <, <=,>,> =, em | |
ou então, e então | O mais baixo |