사칙 연산자
- int 와 int의 연산은 int 출력
- 10 / 4 = 2 // 소수점 이하는 버려짐 (정확한 계산을 위해 int형을 float형으로 바꾸는 작업이 필요함)
- int와 float의 연산은 float 출력
- 10 / 4.0f = 10.0f / 4.0f = 2.5f
산술 변환
- 두 피 연산자의 타입을 같게 일치시킨다. (보다 큰 타입으로 일치)
- long + int -> long + long -> long
- float + int -> float + float -> float
- double + float -> double + double -> double
- 피연산자의 타입이 int보다 작은 타입이면 int로 변환
- byte + short -> int + int -> int
- char + short -> int + int -> int
- '2' - '0' -> 2 - 0 -> 2 가 되는 원리
결과가 타입의 범위를 넘어설 때
- 이를테면 int와 int의 결과가 long의 범위까지 넘어갈때는 두 피연산자 중 하나의 타입을 미리 long으로 바꾼다 그럼 산술 변환에 의해 보다 큰 타입인 long으로 일치가 되어 계산됨
package ch03;
public class imsi {
public static void main(String[] args) {
int a = 1_000_000;
int b = 2_000_000;
long c = (long)a * b;
}
}