Java/자바

형변환

필리힐리 2021. 1. 6. 19:01

형변환은 데이터 타입을 바꾸는 것이다.

 

int 200은 컴퓨터 시점에서 00000000 00000000 00000000 11001000

float 200.0은 컴퓨터 시점에서 01000011 01001000 00000000 00000000이다.

-사람이 봤을 때 같은 수지만 컴퓨터는 두 숫자를 완전 다른 데이터로 인식한다

 

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

 

자동형변환표

자바는 작은 데이터 타입에서 큰 데이터 타입으로 형변환하는 경우 자동으로 변형해주도록 세팅 되어있다.

하지만 큰 데이터 타입에서 작은 데이터 타입으로 변형은 데이터 손실이 될 수 있어서 자동으로 변형해주지 않는다.

 

형변환 예시

int 타입인 a와 float 타입인 b를 더하기 위해선 같은 타입으로 통일시켜야하는데

실수인 float 타입이 정수인 int 보다 크기 때문에 자동으로 변형이된다.

3.0F + 1.0F = 4.0F

double 타입인 c는 float 타입인 4.0F 보다 크기 때문에 4.0은 double 타입으로 자동형변환된다.

c = 4.0D

 

*실수는 소수점 뒤의 수까지 표시할 수 있지만 정수는 표현할 수 없기 때문에 실수가 정수보다 크다.

4 --> 4.0  - 잃어버리는 데이터 없음  4.2 --> 4  - 0.2 손실

 

명시적형변환

float a = (float)2.0

double형인 2.0은 float 보다 큰 데이터 타입이지만 (float)를 붙여 float로 변환할 수 있다.

int b = (double)3.8

double형인 3.8은 int 보다 큰 데이터 타입이지만 (double)을 붙여 int로 변환할 수 있다.

b = 3 (0.8 데이터 손실)

'Java > 자바' 카테고리의 다른 글

연산자  (0) 2021.01.08
구구단 - 배열  (0) 2021.01.07
상수형 데이터 타입  (0) 2021.01.06
데이터 타입  (0) 2021.01.06
주석과 세미클론  (0) 2021.01.06