Logo Hardware.com.br
Mad Max 77
Mad Max 77 Membro Senior Registrado
272 Mensagens 0 Curtidas

Dúvida sobre operações e atribuições em JAVA

#1 Por Mad Max 77 07/10/2009 - 20:32
O código abaixo produz como resultado "-3". Sei que, ao converter de short para byte, neste caso, temos FD = 1111 1101. Mas para a saída ser -3 deve-se fazer o completo de 2 dessa sequência, ou seja, inverter todos os bits (o que dará 0000 0010) e depois somar 1 (o que dará 0000 0011). Esse número binário corresponde ao 3. Tudo bem entendi o processo. Mas porque deve-se fazer o complemento de 2, porque a sequência não poderia ser simplismente 1111 1101 (sequência inicial sem complemento de 2). Alguém poderia ajudar?


class X {
public static void main(String[] a) {
try {
short s = 0x00FD;
byte b = (byte)s;
System.out.println("b = " + b);
}
catch (Exception e) {
System.out.println("TROUBLE!"
}
}
}
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal