형변환

자료형들을 강제로, 혹은 자동으로 변환하는 경우가 있다. 같은 형식의 데이터 타입을 변환하기도 하고, 다른 형식의 데이터 타입 간의 변환이 이루어지기도 한다.

 

형변환의 포함관계

byte < short < int < long <<< float < double

 

용량 순서로 기억하면 편하며 정수보다는 실수가 큰 범위이다.

 

강제 형변환(명시적 형변환)

int a = 128;
short b = (short) a;
byte c = (byte) a; // -128 ~ 127

큰 데이터 타입을 작은 데이터 타입으로 변환하거나, 두 가지 데이터 타입이 자동 변환될 수 없을 때 직접 지정하여 변환하는 것이다.

변수 c처럼 -128이라는 뜬금 없는 값이 나온 이유는 byte 타입이 128이라는 숫자를 포용할 수 없기 때문에 오버플로우가 일어난 것이다.

 

자동 형변환(암시적 형변환)

int m = 80;
double n = m;

처음에 대입한 변수 m은 80이라는 정수형으로 출력되고, n은 80.0은 실수형으로 출력된다.

m에 있는 정수형 값이 n에 대입되기 전에 double로 형변환이 되기 때문에 실수형으로 출력된 것이다.

 

int e = 10;
short f = 20;

short g = (short) (e + f);

연산이 일어날 떄는 큰 범위를 따라간다. 연산에 대해서 형변환를 하고 싶다면 연산이 포함된 표현식에도 괄호()를 하여 결과물에 대해 전체를 형변환 하는 코드를 작성해야한다.

'Back-End > Java' 카테고리의 다른 글

연산자  (0) 2023.05.10
콘솔 입출력  (0) 2023.05.09
String 문자열  (2) 2023.05.09
변수와 자료형, 그리고 상수  (0) 2023.05.08
Java란?  (0) 2023.05.02

+ Recent posts