2014-10-07 2 views
0

Java에서 변수를 캐스팅하는 것에 대한 질문이 있습니다. 나는 코드가 작동하려면 할 필요가 무엇 다음 코드Java 변수 캐스팅

byte b1 = 6; 
    byte b2 = 5; 
    byte bsum; 
    bsum = (b1 + b2); // (1) 

은 한 :

byte b1 = 6; 
    byte b2 = 5; 
    byte bsum; 
    bsum = (byte)(b1 + b2); // (2) 

이유는 (1)의 경우 이클립스 바이트 INT로 변환 할 수 없습니다 말한다? 바이트 변수가 127까지 걸리면 b1 + b2가 int로 이동하는 이유는 무엇입니까? 나는 혼란 스럽다.

시간 내 주셔서 감사합니다!

+0

첫 번째 사항은 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html –

+0

기본적으로 'int'로 해석됩니다. – Rustam

+0

Java에서 2 바이트의 합은 int입니다. 왜냐하면 각 바이트는 숫자 (64 sunrize920

답변

2

specification+ 연산자는 int을 반환하므로 캐스트를해야합니다.

(1) int 범위가 byte 범위보다 넓은 때문에 b1 + b2byte에 할당 될 수 없다는 것을 말한다.