Pessoal,
vejam esse código:
class TesteNumeros {
public void calc() {
int a = (int)Math.pow(2, 31);
int b = (int)Math.pow(2, 31);
int r = a * 2;
System.out.println(a);
System.out.println(b);
System.out.println(r);
}
}
Saída do código:
[telefone removido]
[telefone removido]
-2
Eu até entendi o porque não estourou… entendi pq nao deu um overflow.
(porque como o digito mais significativo é usado para o sinal, e os 15 ultimos digitos estavam com 1 e eu somei tudo, ao invés de estourar, o digito mais significativo ficou com 1 no sinal e o resultado ficou negativo.
minha pergunta é…
não é possível estourar nunca uma variável numérica no java?!?!?!?!
eu tentei de tudo…
tentei somar dois números mesmo estando no limite positivo quanto no limite negativo… e não consigo fazer isso estourar…
com certeza é uma questão matemática, mas alguém poderia ajudar o grande wolverine aqui a entender isso por favor?
obrigado!