byte a = 1; byte b = 2; byte c = a + b;
java 에서 위와 같이 자료형을 선언하면 c 에서 컴파일 에러가 발생하는데 원인이 무엇일까요?
http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.6.2
자바에서 산술연산 표현에서 byte나 short은 int로 변환됩니다. int값을 byte 변수에 저장하려고하니 에러를 낼 수 밖에요. 만약에 연산 결과가 byte가 표현할 수 있는 범위를 벗어나지 않는다고 확신하면 명시적으로 캐스팅을 하실 수는 있습니다.
http://docs.oracle.com/javase
http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.6.2
자바에서 산술연산 표현에서 byte나 short은 int로 변환됩니다.
int값을 byte 변수에 저장하려고하니 에러를 낼 수 밖에요.
만약에 연산 결과가 byte가 표현할 수 있는 범위를 벗어나지 않는다고 확신하면 명시적으로 캐스팅을 하실 수는 있습니다.