Comumente utilizamos diferentes tipos de operadores na matemática, como os aritmético. Eles nos ajudam a representar as famosas equações, fórmulas e etc. Na programação não é diferente, nessa aula iremos aprender como utilizar os tipos de operadores, mas antes vamos dividi-los nos seguintes grupos:
Os operadores aritméticos são utilizados quando queremos escrever expressões aritméticas, como somas, subtrações, etc. Abaixo temos uma tabela com os principais operadores.
Símbolo
Operação
Uso
Explicação
$+$
Adição
$x+y$
Adiciona o valor da direita ao da esquerda (ou vise-versa).
$-$
Subtração
$x-y$
Subtrai o valor da direta do valor da esquerda.
$*$
Multiplicação
$x*y$
Multiplica um valor pelo outro.
$/$
Divisão
$x/y$
Divide o valor da esquerda pelo da direita.
$\%$
Módulo
$x\%y$
Retorna o resto da divisão de x por y.
Exemplos:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Os exemplos acima, demonstram como utilizar dois dos operadores citados. A lógica de utilização é a mesma para os outros operadores.
Operadores Comparativos
Esses operadores são comumente utilizados para testarmos igualdades, desigualdades, diferença entre números/expressões matemáticas. Na programação, os operadores comparativos retornam true (verdadeiro) se a comparação for verdade ou false caso contrário. Na tabela abaixo temos os principais operadores comparativos.
Símbolo
Operação
Uso
Explicação
$==$
Igualdade
$x==y$
Checa se os valores são iguais.
$!$$=$
Diferença
$x$ $!$$=y$
Checa se os valores são diferentes.
$<$
Menor que
$x<y$
Checa se o valor da esquerda é menor que o da direita.
$>$
Maior que
$x>y$
Checa se o valor da esquerda é maior que o da direita.
$<=$
Menor ou igual à
$x<=y$
Checa se o valor da esquerda é menor ou igual ao valor da direita.
$>=$
Maior ou igual à
$x>=y$
Checa se o valor da esquerda é maior ou igual ao valor da direita.
Geralmente utilizamos esses operadores no interior de estruturas condicionais comoif, else if, whileefor.
Exemplos:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
No primeiro exemplo usamos operadores aritméticos e comparação, já no segundo usamos somente um operador de comparação, note que as variáveis a, b e c podem ser substituídas por números, caracteres, etc.
Operadores bitwise (bit a bit)
Esses operadores são muito utilizados e com eles conseguimos realizar operações nos bits (representação binária) de um número.
Símbolo
Operação
Uso
Explicação
$\&$
bitwise AND
$x\&y$
Essa operação seta (torna) um bit do resultado como 1 se o mesmo bit de ambos os valores forem iguais a 1 ou como 0 caso contrário.
$|$
bitwise OR
$x|y$
Essa operação seta um bit do resultado como 1 se o mesmo bit de de qualquer um dos valores for igual a 1 e como 0 caso os ambos os bits dos valores forem iguais a 0.
$\wedge$
bitwise XOR
$x \wedge y$
Essa operação seta um bit do resultado como 1 se o mesmo bit em um dos valores for igual a 1 e o outro igual a 0.
$\sim$
bitwise NOT
$\sim x$
Essa operação troca todos os bits do valor, ou seja, se um bit for igual a 1 será 0 e vice-versa.
$>>$
right shift
$x>>y$
Essa operação move para a direita os bits do valor da esquerda o número de vezes do valor da direita, ou seja, desloca os bits de x y vezes para a direita. E é a mesma coisa que dividir x por $2^y$
$<<$
left shift
$x<<y$
Essa operação move para a esquerda os bits do valor da esquerda o número de vezes do valor da direita, ou seja, desloca os bits de x y vezes para a esquerda. E é a mesma coisa que multiplicar $x$ por $2^y$
Exemplos:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A mesma lógica deve ser utilizada para os operadores XOR, NOT e right shift, sugerimos que você faça um código que utilize esses operadores afim de treinar sua utilização e ver como funciona na prática :).
Operadores Lógicos
Esse operadores recebem valores booleanos (trueou false) e retornam valores booleanos como saída. Vale lembrar que em c/c++ o número 0 é compreendido com false e qualquer número diferente de 0 como true. Esses operadores são comumente utilizados em estruturas condicionais como if, else if, while e for, para checar uma sequência de condições que realizaram os mesmos comandos, caso forem verdadeiras. Tome cuidado para não confundir alguns dos operadores lógicos com os de bitwise. Os lógicos recebem booleanos como entrada e retornam valores booleanos como saída, já os de bitwise realizam operações nos bits dos números.
Símbolo
Operação
Uso
Explicação
$\&\&$
logical AND (e)
$x\&\&y$
Retorna true se x e y forem verdeiros e false quando qualquer um for falso.
$||$
logical OR (ou)
$x||y$
Retorna true se x ou y forem verdeiros e false quando os forem falsos.
$!$
logical NOT (não, negação)
$!x$
Retorna verdadeiro se x for falso e falso se x for verdadeiro.
Exemplos:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Esses operadores realizam algumas das operações que já foram mostradas anteriormente e atribuem o resultado no valor da direita.
Símbolo
Operação
Uso
Equivalência
Explicação
$=$
Atribuição
$x = y$
$x = y$
Atribui o valor da direita ao valor da esquerda
$+=$
Soma e atribuição
$x \ += y$
$x = x + y$
Atribui a soma dos dois valores a $x$
$-=$
Subtração e atribuição
$x \ -=y$
$x = x – y$
Atribui a diferença dos dois valores à $x$
$*=$
Multiplicação e atribuição
$x \ *=y$
$x = x*y$
Atribui o produto dos dois valores à $x$
$/=$
Divisão e atribuição
$x \ /=y$
$x = x/y$
Atribui o quociente da divisão dos dois valores à $x$
$\%=$
Módulo e atribuição
$x \ \%= y$
$x = x\%y$
Atribui o resto da divisão dos dois valores à $x$
$\&=$
bitwise AND e atribuição
$x \ \&= y$
$x = x\&y$
Atribui o valor da operação $x\&y$ à $x$
$|=$
bitwise OR e atribuição
$x \ |= y$
$x = x|y$
Atribui o valor da operação $x|y$ à $x$
$\wedge=$
bitwise XOR e atribuição
$x \ \wedge =y$
$x = x \wedge y$
Atribui o valor da operação $x$ ^$=y$ à $x$
$>>=$
right shifte atribuição
$x >>= y$
$x = x >> y$
Movimenta os bits de x por y vezes para a direita e atribui o resultado em $x$
$<<=$
left shift e atribuição
$x <<= y$
$x = x << y$
Movimenta os bits de x por y vezes para a esquerda e atribui o resultado em $x$
Exemplos:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Os outros operadores seguem a mesma lógica dos exemplos acima.
Operadores de Incremento/Decremento
Símbolo
Operação
Uso
Explicação
$++$
Pré-incremento
$++x$
Incrementa o valor de x em 1 unidade antes de usar seu valor.
$-$$-$
Pré-decremento
$-$$-x$
Decrementa o valor de x em 1 unidade antes de usar seu valor.
$++$
Pós-incremento
$x++$
Incrementa o valor de x em 1 unidade depois de usar seu valor.
$-$$-$
Pós-decremento
$x-$$-$
Decrementa o valor de x em 1 unidade depois de usar seu valor.
Exemplos:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters