Ícone do site Celso Kitamura

Conhecendo Operadores em C# (Operators)

Conhecendo Operadores em C# (Operators)
5/5 - (1 voto)

Operadores são símbolos que executam uma manipulação matemática ou lógica especifica.

A linguagem C# tem um rico conjunto internos de operadores e disponibiliza os seguintes tipos de operadores.

 

Operadores Aritméticos

Os operadores aritméticos executam operações matemáticas.

Considere que a variável A contém o valor 10 e a variável B contém 20.

Operador Descrição Exemplo
+ Adição A + B = 30
Subtração A – B = -10
* Multiplicação A * B = 200
/ Divisão B / A = 2
% Módulo – resto da divisão B % A = 0
++ Incrementa em 1 A++ = 11
Decrementa em 1 A– = 9

 

Operadores Relacionais

Operadores relacionais comparam 2 valores e retornam verdadeiro (true) ou falso (false).

Considere que a variável A contém o valor 10 e a variável B contém 20.

Operador Descrição Exemplo
== Igual (A == B) é false
!= Não igual (A != B) é true
> Maior que (A > B) é false
< Menor que (A < B) é true
>= Maior ou igual que (A >= B) é false
<= Menor ou igual que (A <= B) é true

 

Operadores Lógicos

Operadores lógicos trabalham com operandos booleanos e o resultado também será um booleano.

Considere que a variável A contém o valor true (verdadeiro) e a variável B contém false (falso).

Operador Descrição Exemplo
&& Operador AND (E) (A && B) é false
|| Operador OR (OU) (A || B) é true
! Operador NOT (NÃO) ou Negação !(A && B) é true

 

Operadores Bit a bit

Operadores Bit a bit trabalham com os operandos a nível de bit, ao invés de considerar o valor que ele representa.

Este é um pouquinho difícil de entender no início pois trabalha com base 2 (os números 1 e 0) e no nosso dia a dia estamos acostumados a utilizar a base 10 (os números de 0 a 9). A base da computação é o bit, que pode assumir dois estados:

Aguarde que veremos álgebra booleana com mais detalhes em outro artigo.

Para você começar a entender esse conceito, veja a tabela verdade para estes operadores:

0 & 0 = 0 0 | 0 = 0 0 ^ 0 = 0
0 & 1 = 0 0 | 1 = 1 0 ^ 1 = 1
1 & 0 = 1 1 | 0 = 1 1 ^ 0 = 0
1 & 1 = 0 1 | 1 = 1 1 ^ 1 = 1

 

Considere que a variável A contém o valor 3 (0011) e a variável B contém 11 (1011).

Operador Descrição Exemplo
& AND (E) (A & B) = 3 (0011)
| OR (OU) (A | B) = 11 (1011)
^ XOR (OU Exclusivo) (A ^ B) = 8 (1000)
~ Operador Complement. Inverte todos os bits. (~A ) = 12 (1100)
<< Deslocamento a direita 5 (0101) << 2 = 1 (0001)
>> Deslocamento a esquerda 5 (0101) >> 2 = 4 (0100)

 

Operadores de Atribuição

Operadores de atribuição são utilizados para atribuirmos um valor a uma variável.

Operador Descrição Exemplo
= Atribuição simples C = A + B atribui o valor de A + B em C
+= Atribuição aditiva C += A equivale a C = C + A
-= Atribuição subtrativa C -= A equivale a C = C – A
*= Atribuição multiplicativa C *= A equivale a C = C * A
/= Atribuição de divisão C /= A equivale a C = C / A
%= Atribuição de módulo C %= A equivale a C = C % A
<<= Atribuição e deslocamento a esquerda C <<= 2 equivale a C = C << 2
>>= Atribuição e deslocamento a direita C >>= 2 equivale a C = C >> 2
&= Atribuição e AND bit a bit C ^= 2 equivale a C = C ^ 2
^= Atribuição e XOR bit a bit C |= 2 equivale a C = C | 2
|= Atribuição e OR bit a bit C &= 2 equivale a C = C & 2

 

Outros Operadores

Existem ainda outros importantes operadores que não são classificados em nenhum tipo acima.

Operador Descrição Exemplo
sizeof() Retorna o tamanho do tipo de dado sizeof(int);
typeof() Retorna o tipo de classe typeof(StreamReader);
& Retorna o endereço de uma variável &a;
* Ponteiro para uma variável *a;

Cria um ponteiro chamado ‘a’ para uma variável

? : Expressão Condicional Se condição é true ? então X : senão Y
is Determina se um objeto é de um certo tipo If( Ford is Car) // checks if Ford is an object of the Car class
as Conversão (cast) sem “levanter” uma exceção (erro) se a conversão falhar Object obj = new StringReader(“Hello”);

StringReader r = obj as StringReader;

 

Precedência de Operadores em C#

A precedência de operador determina o agrupamento em uma expressão. Isso afeta o resultado de uma expressão. Certos operadores têm maior precedência do que outros.

Lembra de quando você resolvia equações no ginásio?

Existia uma regra, uma ordem que deve ser seguida para resolver as operações de uma expressão. Por exemplo, o operador de multiplicação tem maior precedência do que o operador de adição.

E para fazer com que a equação fosse resolvida em outra ordem, utilizamos parênteses.

Na programação funciona assim também.

Por exemplo:

x = 7 + 3 * 2

Primeiro resolvemos a multiplicação e depois a adição.

X = 7 + 6

X = 13

Para resolvermos a adição primeiro, utilizamos parênteses:

x = (7 + 3) * 2

x = 10 * 2

x = 20

Na tabela abaixo, operadores de maior precedência estão no topo.

 

Categoria Operador Associatividade
Postfix () [] -> . ++ – – Esquerda para direita
Unário + – ! ~ ++ – – (type)* & sizeof Direita para esquerda
Multiplicativo * / % Esquerda para direita
Aditivo + – Esquerda para direita
Deslocamento << >> Esquerda para direita
Relacional < <= > >= Esquerda para direita
Igualdade == != Esquerda para direita
Bit a bit AND & Esquerda para direita
Bit a bit XOR ^ Esquerda para direita
Bit a bit OR | Esquerda para direita
AND Lógico && Esquerda para direita
OR Lógico || Esquerda para direita
Condicional ?: Direita para esquerda
Atribuição = += -= *= /= %=>>= <<= &= ^= |= Direita para esquerda
Vírgula , Esquerda para direita

 

Palavras finais

Pode parecer confuso neste início, mas os operadores são parte essencial no desenvolvimento de um aplicativo.
Utilizamos com tanta frequência em nosso cotidiano de desenvolvedor que se torna algo natural e usamos sem pensar, sem dificuldade.

Meu e-book Como Aprender a Programar do Absoluto Zero está GRATUITO por tempo limitado!

Olha o link: 👉🏼 http://celsokitamura.com.br/como-aprender-a-programar

Bora aprender a programar!

Sair da versão mobile