산술변환

이의준·2024년 5월 22일

Java

목록 보기
9/87

사칙 연산자

  • int 와 int의 연산은 int 출력
    • 10 / 4 = 2 // 소수점 이하는 버려짐 (정확한 계산을 위해 int형을 float형으로 바꾸는 작업이 필요함)
  • int와 float의 연산은 float 출력
    • 10 / 4.0f = 10.0f / 4.0f = 2.5f

산술 변환

  1. 두 피 연산자의 타입을 같게 일치시킨다. (보다 큰 타입으로 일치)
  • long + int -> long + long -> long
  • float + int -> float + float -> float
  • double + float -> double + double -> double
  1. 피연산자의 타입이 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; // 1백만 = 10의 6제곱
        int b = 2_000_000; // 2백만 = 10의 약 6제곱
        
        long c = (long)a * b;
    }
}

0개의 댓글