domingo, 15 de setembro de 2013

Operadores aritméticos: soma(+), divisão(-), multiplicação(*), divisão(/) e resto(%)

Operadores aritméticos são operadores aplicados a dois ou mais números inteiros ou números de ponto flutuante.

Soma e subtração: + e -

Java não permite a sobrecarga de operadores. No entanto a própria linguagem sobrecarregou o + para quando aplicado em uma String fizesse concatenação.
O operador + quando aplicado a dois ou mais números inteiros ou de ponto  flutuante, tem a função de somar estes números.
Exemplo:
int minhaSoma = 20 + 8; // Resultado 28
O operador - quando aplicado a dois ou mais números inteiros ou de ponto  flutuante, tem a função de subtrair estes números.
int minhaSubtracao = 20 – 8; // Resultado 12

Multiplicação e divisão: * e /

Os operadores de multiplicação são aplicáveis a todos os tipos primitivos numéricos.
Existem algumas limitações impostas pela representação numérica do computador. Estas limitações ocorrem para todos os formatos numéricos, do byte ao double, mas são mais notáveis para os inteiros.
Se você multiplicar ou dividir dois inteiros, o resultado será calculado usando a aritmética de inteiros. Se o resultado for maior que o maior numero que pode ser armazenado o resultado final não fara sentido
O operador * quando aplicado a dois ou mais números tem a função de multiplicar estes números.
Exemplo:
int minhaMultiplicacao = 20 * 8; // Resultado 160
byte minhaMultiplicacao2 = (byte)20 * (byte)20; // O compilador informara um possível erro de precisão sendo necessário transformar a variável byte minhaMultiplicacao2 em int.
O operador - quando aplicado a dois ou mais números tem a função de dividir estes números.
int minhaDivisao = 20 / 8; // O resultado seria resultado 2.5 porem como estamos armazenando em um int o resultado será 2 porque 2.5 deveria ser armazenado em um float ou double;
int float minhaDivisaoF = 20f / 8f; // Faz o cast para os valores 20 e 8 serem considerados do tipo float e guarda o resultado em uma variável float o qual o resultado será 2.5;

Resto da divisão: %

O operador % quando aplicado a dois ou mais números inteiros ou de ponto  flutuante, tem a retornar o resto da divisão destes números.
Exemplo:
int meuResto = 20 % 8; // Resultado 4
Porque 4 se o resultado da divisão é 2,5?
O que acontece aqui é simples o sistema divide 20/8 da seguinte maneira (voltando ao ensino fundamental) :
Quantas vezes 8 cabe dentro de 20?
            2x é a resposta certa porque 2 x 8  = 16
Quanto é 20 – 16?
            4 opa aqui esta o nosso resultado.
Resumindo é feito uma divisão direta ou seja divide um numero pelo outro e o que sobra não dividido novamente, o que sobra é chamado de resto.
Outros exemplos:
int meuResto2 = 20 % 3; // O resultado será 2 porque 3 * 6 = 18 e 20 – 18 é 2.
int meuResto3 = 20 % 5; // O resultado será 0. Porque 5 * 4 = 20 e 20 – 20 é 0;



Concluindo sugiro que sempre que trabalhar com divisão utilize float ou double para não ter perda de precisão e não se esqueça de fazer o cast dos valores divididos para float((float)valor ou valorf)  ou double((double) valor).
Na multiplicação sempre tome cuidado com o possível resultado, pois a multiplicação de dois números do mesmo tipo pode resultar em numero que não cabe neste tipo.
Vamos à prática:
class OperadorAritimetico{
            public static void main(String args[]){     
                        int minhaSoma = 20 + 8;
                        int minhaSubtracao = 20 - 8;
                        int minhaMultiplicacao = 20 * 8;
                        int minhaMultiplicacao2 = (byte)20 * (byte)20;
                        int minhaDivisao = 20 / 8;
                        float minhaDivisaoF = 20f / 8f;
                        int meuResto = 20 % 8;
                        int meuResto2 = 20 % 3;
                        int meuResto3 = 20 % 5;
                       
                        System.out.println("minhaSoma = " + minhaSoma);
                        System.out.println("minhaSubtracao = " + minhaSubtracao);
                        System.out.println("minhaMultiplicacao = " + minhaMultiplicacao);
                        System.out.println("minhaMultiplicacao2=" + minhaMultiplicacao2);
                        System.out.println("minhaDivisao = " + minhaDivisao);
                        System.out.println("minhaDivisaoF = " + minhaDivisaoF);
                        System.out.println("meuResto = " + meuResto);
                        System.out.println("meuResto2 = " + meuResto2);
                        System.out.println("meuResto3 = " + meuResto3);                
            }
}



Até o próximo post.


            

2 comentários: