2014-12-29 5 views
-6

누군가 나를 아래 프로그램의 출력을 알려 방법 서명 바이트하면 두 숫자를 XOR 때출력 : 부호있는 바이트 조작

public class OppositeSigns 
{ 
    public static void main(String[] args) 
    { 
     // TODO Auto-generated method stub 

     byte a =-2; 
     byte b= -1; 
     opp(a,b); 
    } 

    static void opp(byte x,byte y) 
    { 
     byte z; 
     z= (byte)(x^y); 
     System.out.println(z); 
    } 
} 
+6

왜 시도하지 않으시겠습니까? – Henry

답변

1
-1 is 11111111 in binary 
-2 is 11111110 in binary 

, 당신은

을 얻을 작동시겠습니까
 00000001 

은 1

+3

두 바이트를 XOR 처리하는 것을 제외하고는. 당신은 32 비트 정수를 배제하고 있습니다. 대답은 끝나지 만, 정수 승격이 먼저 일어나는 것을 아는 것은 가치가 있습니다. –

+0

고맙습니다. @ eran. 그러나 부호있는 바이트가 어떻게 표현되는지는 -1 = 10000001입니까? –

+0

@RahulLamba [2의 보수] (http://en.wikipedia.org/wiki/Two%27s_complement)에 대해 읽어보십시오. – Eran

관련 문제