본문 바로가기
JAVA

[JAVA] Chapter 3. Type Conversion

by varcode 2023. 7. 3.
반응형

형 변환
형 변환(Type Casting)은 변수나 상수의 값을 다른 데이터 타입으로 변환하는 것을 의미한다. 형 변환은 묵시적 형 변환(implicit type casting)과 명시적 형 변환(explicit type casting)으로 나뉜다.

묵시적 형 변환은 데이터 타입이 자동으로 변환되는 것을 말하는데, 자바에서는 작은 데이터 타입을 큰 데이터 타입으로 변환할 때 묵시적 형 변환이 일어난다.

명시적 형 변환은 개발자에 의해 데이터 타입이 변환되는 것을 말하는데, 자바에서는 큰 데이터 타입을 작은 데이터 타입으로 변환할 때 명시적 형 변환이 일어난다. 모든 프로그래밍 언어에서 이항 연산자를 사용할 때는 양쪽 항의 데이터 타입이 같아야 하기 때문에 명시적 형 변환은 compile error를 막기 위한 방법이라고 볼 수 있다.

명시적 형 변환을 사용한다는 것은 데이터의 손실이 발생한다는 의미이므로 손실되는 데이터 값이 무엇인지, 손실되어도 되는지 등의 여부를 확인해야 한다.

자바에서 형 변환의 대소 관계는 다음과 같다.

형 변환 기준

즉, int을 long으로, long을 float으로 변환할 때 묵시적 형 변환이, 반대의 과정에서는 명시적으로 형 변환을 해주어야한다.

그런데 위의 기준를 보면 다음과 같은 의문이 들 수 있다.

 

Q) long8 byte이고 float4 byte인데 왜 long float에 맞추는가? “데이터와 작은데이터의 기준이 무엇인가?

A) 자바에서는 데이터의 크기뿐만 아니라 데이터 타입의 정밀도도 고려한다.
정수는 Fixed point를 사용하지만 실수는 Floating point를 사용한다. float 4 byte = 32 bit인데, 앞의 8 bit로 정수부, 뒤의 24 bit로 소수부를 표현한다.
예를 들어,
10.2 = 0.102 X 102 이므로 앞의 8 bit102, 뒤의 24bit 0.102를 표현한다.
실수형에서 앞의 8 bit
10(2)102 , 110(2) 104 를 의미하기 때문에 단위가 2배씩 커지는 정수형과 달리 102 씩 커진다.

반응형

'JAVA' 카테고리의 다른 글

[JAVA] Chapter 6. Method  (0) 2023.07.06
[JAVA] Chapter 5. Control  (0) 2023.07.05
[JAVA] Chapter 4. Operator  (0) 2023.07.04
[JAVA] Chapter 2. Variable & Data Type  (0) 2023.07.02
[JAVA] Chapter 1. What is JAVA?  (0) 2023.07.01

댓글