① 형 변환
형 변환(Type Casting)은 변수나 상수의 값을 다른 데이터 타입으로 변환하는 것을 의미한다. 형 변환은 묵시적 형 변환(implicit type casting)과 명시적 형 변환(explicit type casting)으로 나뉜다.
묵시적 형 변환은 데이터 타입이 자동으로 변환되는 것을 말하는데, 자바에서는 작은 데이터 타입을 큰 데이터 타입으로 변환할 때 묵시적 형 변환이 일어난다.
명시적 형 변환은 개발자에 의해 데이터 타입이 변환되는 것을 말하는데, 자바에서는 큰 데이터 타입을 작은 데이터 타입으로 변환할 때 명시적 형 변환이 일어난다. 모든 프로그래밍 언어에서 이항 연산자를 사용할 때는 양쪽 항의 데이터 타입이 같아야 하기 때문에 명시적 형 변환은 compile error를 막기 위한 방법이라고 볼 수 있다.
명시적 형 변환을 사용한다는 것은 데이터의 손실이 발생한다는 의미이므로 손실되는 데이터 값이 무엇인지, 손실되어도 되는지 등의 여부를 확인해야 한다.
자바에서 형 변환의 대소 관계는 다음과 같다.
즉, int을 long으로, long을 float으로 변환할 때 묵시적 형 변환이, 반대의 과정에서는 명시적으로 형 변환을 해주어야한다.
그런데 위의 기준를 보면 다음과 같은 의문이 들 수 있다.
Q) long은 8 byte이고 float은 4 byte인데 왜 long을 float에 맞추는가? “큰” 데이터와 “작은” 데이터의 기준이 무엇인가?
A) 자바에서는 데이터의 크기뿐만 아니라 데이터 타입의 정밀도도 고려한다.
정수는 Fixed point를 사용하지만 실수는 Floating point를 사용한다. float는 4 byte = 32 bit인데, 앞의 8 bit로 정수부, 뒤의 24 bit로 소수부를 표현한다.
예를 들어, 10.2 = 0.102 X 102 이므로 앞의 8 bit로 102, 뒤의 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 |
댓글