Conhecendo Operadores em C# (Operators)

Tempo de leitura: 5 min

Escrito por Celso Kitamura
em 3 de janeiro de 2017

Entre para o Grupo VIP e fique sabendo antes das novidades

Junte-se à nossa comunidade de App Devs que estão transformando o mundo

100% livre de spam.

Compartilhe agora mesmo:

Conhecendo Operadores em C# (Operators)

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.

  • Aritméticos
  • Relacionais
  • Lógicos
  • Bit a bit
  • Atribuição
  • Outros

 

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:

  • ligado e desligado ou
  • true (verdadeiro) e false (falso) ou ainda
  • zero (0) e um (1)

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.
Para ser avisado quando novos artigos forem publicados, se cadastre na lista VIP do Celso.

Compartilhe agora mesmo:

Comece pelo e-book GRATUITO (Por Tempo Limitado)

Crie Sua Primeira Skill Alexa

Se você não sabe por onde começar, este e-book te mostra o passo a passo para criar sua primeira skill Alexa.

QUERO CRIAR SKILLS PARA ALEXA!
100% livre de spam.

Você vai gostar também:

Para enviar seu comentário, preencha os campos abaixo:

Deixe uma resposta


*


*


Seja o primeiro a comentar!

Entre para o Grupo VIP e fique sabendo antes das novidades

Junte-se à nossa comunidade de App Devs que estão transformando o mundo

100% livre de spam.

Damos valor à sua privacidade

Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

Cookies estritamente necessários

Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

Cookies de desempenho

Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

Cookies de funcionalidade

Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

Cookies de publicidade

Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

Visite as nossas páginas de Políticas de privacidade e Termos e condições.

Importante: Este site faz uso de cookies que podem conter informações de rastreamento sobre os visitantes.
Criado por WP RGPD Pro