Olá
tentei fazer um cast de variáveis primitivas e pensei que a variável "b"
fosse receber o valor 127(imaginei que o resultado fosse truncado para o máximo que a variável byte pudesse suportar), mas ela recebeu o valor ‘-1’. Fiz a conversão do valor da variável short(32767) para binário e com o resultado obtido fiquei mais confuso ainda
public static void main(String[] args) {
final short s =32767;
byte b = (byte)s;
System.out.println(b);
}
O resultado foi " -1 "
não entendi
Converti a variável short, 32767, para binário e obtive o seguinte resultado: 111.1111.1111.1111
a variável short trabalha com inteiros de 16 bits, então, de acordo com o valor obtido, está faltando um bit. Eu imagino que esse bit que está faltando é para valores negativos
Não era para a variável byte receber o valor ‘-128’ ?