D Programação - Operadores

Um operador é um símbolo que diz ao compilador para realizar manipulações matemáticas ou lógicas específicas. A linguagem D é rica em operadores integrados e fornece os seguintes tipos de operadores -

  • Operadores aritméticos
  • Operadores Relacionais
  • Operadores lógicos
  • Operadores bit a bit
  • Operadores de atribuição
  • Operadores diversos

Este capítulo explica os operadores aritméticos, relacionais, lógicos, bit a bit, atribuição e outros, um por um.

Operadores aritméticos

A tabela a seguir mostra todos os operadores aritméticos suportados pela linguagem D. Assumir variávelA contém 10 e variável B detém 20 então -

Mostrar exemplos

Operador Descrição Exemplo
+ Ele adiciona dois operandos. A + B dá 30
- Ele subtrai o segundo operando do primeiro. A - B dá -10
* Ele multiplica ambos os operandos. A * B dá 200
/ Ele divide numerador por denumerador. B / A dá 2
% Ele retorna o resto de uma divisão inteira. B% A dá 0
++ O operador de incremento aumenta o valor inteiro em um. A ++ dá 11
- O operador de decrementos diminui o valor inteiro em um. A-- dá 9

Operadores Relacionais

A tabela a seguir mostra todos os operadores relacionais suportados pela linguagem D. Assumir variávelA contém 10 e variável B contém 20, então -

Mostrar exemplos

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 se torna 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 lógicos

A tabela a seguir mostra todos os operadores lógicos suportados pela linguagem D. Assumir variávelA detém 1 e variável B segura 0, então -

Mostrar exemplos

Operador Descrição Exemplo
&& É chamado de operador lógico AND. Se ambos os operandos forem diferentes de zero, a condição torna-se verdadeira. (A && B) é falso.
|| É denominado Operador OR lógico. Se qualquer um dos dois operandos for diferente de zero, a condição se torna verdadeira. (A || B) é verdade.
! É denominado Operador NOT lógico. Use para reverter o estado lógico de seu operando. Se uma condição for verdadeira, o operador lógico NOT tornará falso. ! (A && B) é verdade.

Operadores bit a bit

Operadores bit a bit funcionam em bits e realizam operações bit a bit. As tabelas de verdade para &, | e ^ são as seguintes -

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Suponha que A = 60; e B = 13. No formato binário serão os seguintes -

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~ A = 1100 0011

Os operadores bit a bit suportados pela linguagem D estão listados na tabela a seguir. Suponha que a variável A tenha 60 e a variável B tenha 13, então -

Mostrar exemplos

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, significa 0000 1100.
| O operador binário OR copia um bit se ele existir em qualquer operando. (A | B) dá 61. Significa 0011 1101.
^ O operador binário XOR copia o bit se estiver definido em um operando, mas não em ambos. (A ^ B) dá 49. Significa 0011 0001
~ O operador de complemento binários é unário e tem o efeito de 'inverter' bits. (~ A) dá -61. Significa 1100 0011 na forma de complemento de 2.
<< Operador binário de deslocamento à esquerda. O valor dos operandos à esquerda é movido para a esquerda pelo número de bits especificado pelo operando à direita. A << 2 dá 240. Significa 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. A >> 2 dá 15. Significa 0000 1111.

Operadores de atribuição

Os seguintes operadores de atribuição são suportados pela linguagem D -

Mostrar exemplos

Operador Descrição Exemplo
= É um operador de atribuição simples. Ele atribui valores de operandos do lado direito para operando do lado esquerdo C = A + B atribui valor de A + B em C
+ = É adicionar E operador de atribuição. Ele adiciona o operando direito ao operando esquerdo e atribui o resultado ao operando esquerdo C + = A é equivalente a C = C + A
- = É o operador de atribuição subtrair AND. Ele subtrai o operando direito do operando esquerdo e atribui o resultado ao operando esquerdo. C - = A é equivalente a C = C - A
* = É o operador de atribuição de multiplicação AND. Ele multiplica o operando direito pelo operando esquerdo e atribui o resultado ao operando esquerdo. C * = A é equivalente a C = C * A
/ = É o operador de divisão AND atribuição. Ele divide o operando esquerdo com o operando direito e atribui o resultado ao operando esquerdo. C / = A é equivalente a C = C / A
% = É o módulo E o operador de atribuição. Leva o módulo usando dois operandos e atribui o resultado ao operando esquerdo. C% = A é equivalente a C = C% A
<< = É deslocamento para a esquerda e operador de atribuição. C << = 2 é igual a C = C << 2
>> = É o operador de deslocamento e atribuição à direita. C >> = 2 é igual a C = C >> 2
& = É um operador de atribuição AND bit a bit. C & = 2 é igual a C = C & 2
^ = É um operador de atribuição e OR exclusivo bit a bit. C ^ = 2 é igual a C = C ^ 2
| = É um operador de atribuição e OR inclusivo bit a bit C | = 2 é igual a C = C | 2

Operadores diversos - tamanho e ternário

Existem alguns outros operadores importantes, incluindo sizeof e ? : suportado por D Language.

Mostrar exemplos

Operador Descrição Exemplo
tamanho de() Retorna o tamanho de uma variável. sizeof (a), onde a é inteiro, retorna 4.
E Retorna o endereço de uma variável. &uma; fornece o endereço real da variável.
* Ponteiro para uma variável. *uma; dá um ponteiro para uma variável.
? : Expressão Condicional Se a condição for verdadeira, então valor X: Caso contrário, valor Y.

Precedência de operadores em D

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 sobre outros.

Por exemplo, o operador de multiplicação tem precedência mais alta do que o operador de adição.

Vamos considerar uma expressão

x = 7 + 3 * 2.

Aqui, x é atribuído a 13, não a 20. A razão simples é que o operador * tem precedência mais alta do que +, portanto, 3 * 2 é calculado primeiro e, em seguida, o resultado é adicionado a 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 alta são avaliados primeiro.

Mostrar exemplos

Categoria Operador Associatividade
Postfix () [] ->. ++ - - Da esquerda para direita
Unário + -! ~ ++ - - (tipo) * & sizeof Direita para esquerda
Multiplicativo * /% Da esquerda para direita
Aditivo + - Da esquerda para direita
Mudança << >> Da esquerda para direita
Relacional <<=>> = Da esquerda para direita
Igualdade ==! = Da esquerda para direita
E bit a bit E Da esquerda para direita
XOR bit a bit ^ Da esquerda para direita
OR bit a bit | Da esquerda para direita
E lógico && Da esquerda para direita
OR lógico || Da esquerda para direita
Condicional ?: Direita para esquerda
Tarefa = + = - = * = / =% = >> = << = & = ^ = | = Direita para esquerda
Vírgula , Da esquerda para direita