728x90
형 변환
- 형 변환이란?
- 암묵적 형 변환
- 명시적 형 변환
형 변환이란?
코드를 작성할 때 자료형이 각각 다릅니다. int 형을 받았지만 double형으로 표현을 해야 하는 경우도 있을 수 있고 문자를 받고 그것을 유니코드의 숫자로 화면에 띄우는 경우도 있을 것입니다. 이러한 경우 자료형이 다르기 때문에 자료형을 바꾸어주어야 합니다. 그러한 경우에 형 변환을 이용합니다.
암묵적 형 변환
암묵적 형 변환은 더 작은 메모리를 가진 자료형에서 더 큰 메모리로 변환을 하는 경우 일어나는 형 변환으로 특별하게 코드를 작성하지 않고 일어나는 형 변환을 의미합니다.
byte a=5;
short b=a;
int c=b;
long d=c;
위의 예시와 같이 byte자료형이 가장 작기 때문에 메모리가 더 큰 자료형에 사용을 할 때 따로 코드를 작성하지 않더라도 컴파일할 때 자동으로 형 변환이 일어납니다.
명시적 형 변환
메모리가 큰 자료형에서 메모리가 작은 자료형으로 변환을 할 때 코드를 작성하여 변환을 하는 형 변환 혹은 데이터 손실을 감수하더라도 자료형을 바꾸어야 할 때 사용하는 변환을 의미합니다.
double a=3.7;
int b=(int)a; //정수형 b에 저장되는 값은 소수점을 제외한 3이 저장됩니다.
위의 예시는 데이터 손실을 감수하더라도 변환을 하기 위하여 명시적 형 변환을 한 경우입니다. 이때 b에 저장되는 값만 형을 변환한 것이고 a의 값은 그대로 유지되고 있습니다.
int a=200;
byte b=(byte)a; //byte 자료형의 정수 표현 가능 범위는 -128~127이므로 b에 -73이 저장
위의 예시는 메모리가 더 작은 자료형으로 변환을 하는 경우입니다. a의 값이 byte자료형의 범위를 넘어가게 되어 오버플로우가 발생하여 원래 값이 아닌 -73의 값이 저장되었습니다.
728x90