2.4.2 기본 자료형 간의 연산

jh·2022년 1월 6일
0

Do it! 자바 완전 정복

목록 보기
11/70

boolean을 제외한 나머지 기본 자료형은 서로 연산할 수 있다. 이때 모든 연산은 같은 자료형끼리만 가능하며 연산 결과 역시 같은 자료형이 나온다. 단, int보다 작은 자료형 간의 연산 결과는 int가 나온다. 예를 들어 byte+byte,short+short,byte+short의 결과 자료형은 int이다. 이는 CPU에서 연산 최소 단위가 int이므로 int보다 작은 자료형도 일단 int로 읽어 와서 연산을 수행하기 때문이다. 즉 CPU에서는 int + int가 수행된 셈이므로 결과도 int가 나오는 것이다. 쉽게 생각해서 int보다 작은 자료형 간의 연산은 int, int보다 크거나 같은 자료형 간의 연산은 해당 자료형이 나온다고 생각하면 된다.

같은 기본 자료형 간 연산 결과

연산결과
byte 자료형 + byte 자료형int 자료형
short 자료형 + short 자료형int 자료형
int 자료형 + int 자료형int 자료형
long 자료형 + long 자료형long 자료형
float 자료형 + float 자료형float 자료형
double 자료형 + double 자료형double 자료형

그렇다면 int + long은 계산할 수 없을까? 이것이 바로 타입 변환을 배운 이유다. 다운캐스팅은 개발자가 직접 해 줘야 하지만, 업캐스팅은 자동 타입 변환이므로 int + long을 수행하면 컴파일러는 연산을 위해 int를 long으로 자동 업캐스팅해 long + long으로 계산한다. 당연한 이야기겠지만, 결과도 long의 값이 나올 것이다. 여기서도 역시 int보다 작은 자료형 간의 연산 결과는 int 자료형이 나올 것이다.

서로 다른 기본 자료형 간 연산 결과

연산결과
byte 자료형 + short 자료형int 자료형
byte 자료형 + int 자료형int 자료형
short 자료형 + long 자료형long 자료형
int 자료형 + float 자료형float 자료형
long 자료형 + float 자료형float 자료형
float 자료형 + double 자료형double 자료형

여기서는 더하기(+) 연산만 표시했지만 모든 연산에 똑같이 적용된다.

실습


결과

profile
코딩 공부 중...

0개의 댓글