(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)
자료형 변환이란 데이터 형식(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 |