(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

자료형 변환이란 데이터 형식(Type)을 변환하는 것으로 자동 형 변환(Implicit Conversion)과 강제 형 변환(Explicit Conversion)으로 나누어 진다.

■ 자동 형 변환(Implicit Conversion) : 자동적으로 발생하는 형태의 변환으로 묵시적 형 변환이라고도 한다.

1) 대입 연산에서의 자동 형 변환

- 대입 연산시, =의 왼쪽 값이 기준이 되고, 이항 연산자(=, +,-, *, /)는 양쪽 모두의 자료형과 결과까지 같아야 한다.

2) 산술 연산 과정의 자동 형 변환

- 산술 연산 과정에서의 형 변환은 데이터 손실이 최소화되는 방향(범위가 큰쪽)으로 진행된다.

(long은 8바이트 float의 크기는 4바이트지만, 정수보다 실수의 표현범위가 더 크기 때문에 float로 변환된다.)

 

1
2
3
4
5
6
public class Main {
    public static void main(String[] args) {
        double d = 7;
        int i = 'A';
    }
}
cs

Line 3 : int 형이 double 형으로 변환

Line 4 : char 형이 int 형으로 변환

 

■ 강제 형 변환(Explicit Conversion) : 프로그래머가 명시적으로 형 변환을 요청하는 형태의 변환으로 명시적 형 변환이라고도 한다.

1
2
3
4
5
6
7
8
9
public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
 
        double f = a / b;
        double g = (double)a / b;
    }
}
cs

Line 6 : int형 a / b의 결과인 0이 double형으로 자동 형변환 되어 f에 0.0 저장

Line 7 : int형 a를 double형으로 강제 형변환하여 10.0이 되고, b도 a와 연산을 하면서 double로 자동 형변환 되어 10.0 / 20.0의 계산 결과가 g에 저장

'Java' 카테고리의 다른 글

자바(Java) 비트 연산자  (0) 2020.06.24
자바(Java) 연산자(Operator)  (0) 2020.06.23
자바(Java) 상수  (0) 2020.06.18
문자 인코딩(Character Encoding) ASCII, ANSI, Unicode, UTF  (0) 2020.06.17
자바(Java) 변수  (0) 2020.06.17

+ Recent posts