자동 형 변환이란?

a 변수가 타입이 다른 b 변수에 저장 되었을 때, a 변수의 데이터 범위가 더 작으면 자동으로 타입을 변환시켜주는 것
byte a = 127;
int b = a; // b가 127의 값을 가진 int타입의 변수가 됨

※ 데이터 범위의 비교 : (작음) byte → short, char → int → long → float → double (큼)

 

연산식의 자동 형 변환

다른 타입끼리의 연산이 일어나면, 작은 범위의 타입이 큰 범위의 타입으로 자동 형 변환 되어 연산이 진행된다.
int a = 1; // int타입의 1이 double타입의 1.0으로 변환
double b = 1.5;

double result = a + b; // 1.0 + 1.5 = 2.5;

※ 정수형 연산은 int를, 실수형 연산은 double을 기본으로 한다.
※ 정수형 연산 시에 byte, char, short은 int로 형 변환 되어 연산을 진행한다.(피연산자를 4byte 단위로 저장하기 때문)

 

강제(명시적) 형 변환이란?

범위가 더 큰 타입을 작은 타입으로 강제로 형 변환 하는 것.
하지만, 데이터의 손실이 발생 할 수 있다.
double dPie = 3.14;

int iPie = (int)dPie; // 정수형 타입이므로 3.14의 소수점이 버려져, 3이 저장된다.

※ 타입에 따라 데이터가 손실되는 방식이 다르므로 주의!

 

연산식의 강제 형 변환

다른 타입끼리의 연산이 일어나면, 작은 범위의 타입이 큰 범위의 타입으로 자동 형 변환 되어 연산이 진행된다.
int a = 1;
double b = 1.5;

int result = a + (int)b; // 소수점이 버려져 2 = 1 + 1의 값을 가지는 연산이 된다.
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기