Casting

Pessoal , a nivel de conhecimento mais técnico da linguagem , eu li uma vez que se vc tem duas variáveis do tipo byte e multiplica-se uma pela outra o java automaticamente promove o resultado para um int , mas nesse mesmo livro dizia que eu posso fazer um casting do resultado para ele se tornar um byte tb…isso está incorreto?

byte num1 = 4,num2=30,resultado=0;
resultado = (byte)num1 * num2;

esse código da erro…diz que não é possivel converter int para byte…pq não ? o casting não é justamente pra isso , pra se converter valores de maior precisão para de menores precisão?

Valews

Quando você fez a multiplicação, o produto obtido é considerado um int e não um byte. mesmo se você fizesse:

resultado = (byte)num1 * (byte)num2;

resultado receberia um int e daí o erro de casting. O ideal seria fazer o casting do produto, não dos multiplicandos. Assim:

resultado = (byte)(num1 * num2);

Espero que ajude.

Ajuda sim…Obrigado…