Alo amigos,
Estou com diificuldade para entender a seguinte questão:
Se eu defiinir duas variaveis tipo short (16bits) com o maximo valor permitdiito em cada uma delas ou seja 32767 e uma terceira variavel para receber a soma das duas anteriores tipo int (32 bits). funciona normall.
exemplo 1
short shortUm = 32767;
short shortDois = 32767;
int intTres = shortUm + shortDois;
System.out.println("Valor de intTres: " + intTres);
Resultado 65534
Agora se usar a mesma ideia com variaveiis tipo int e o resultado em uma tipo long
a soma é sempre -2, porque? Isto não poderia ser um prolblema em um programa cujos dados por algum motivo cheguem ao limite de uma das variaveis?
exemplo 2
int intUm = [telefone removido]; // limite máximo
int intDois = [telefone removido] ; // limite máximo
long longTres = intUm + intTres; // limite máximo de um long é 9223372036854775807
System.out.println("Valor de longTres é: " + longTres);
Resultado -2
Claro que se no exemplo2 todas as variaveis forem tiipo long, sem problema
obrigado pela atenção,
Bambil