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가 표현할 수 있는 범위를 벗어나지 않는다고 확신하면 명시적으로 캐스팅을 하실 수는 있습니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
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가 표현할 수 있는 범위를 벗어나지 않는다고 확신하면 명시적으로 캐스팅을 하실 수는 있습니다.
댓글 달기