부동소수점수 내부 표현의 확인
JDK 라이브러리에 있는 Double.doubleToRawLongBits 라는 메서드는 dobule 타입의 값을 그와 똑같은 비트 패턴을 갖는 long 타입의 값으로 만드는 메서드입니다. 이 메서드의 사용 방법은 다음과 같습니다.
그리고 JDK 라이브러리의 Long.toBinaryString 이라는 메서드는 long 타입의 정수 내부 표현을 문자열로 만들어서 리턴하는 메서드입니다. 이 메서드의 사용법은 다음과 같습니다.
이 두 메서드를 이용하여 12.735 와 -12.735 의 내부 표현을 문자열로 출력하는 프로그램을 작성하십시오. 그리고 그 결과를 [ 그림 3-17 ]의 비트 패턴과 비교해 보십시오.
다음과 같은 결과가 나왔다.
12.375 : 100000000101000110000000000000000000000000000000000000000000000
-12.375 : 1100000000101000110000000000000000000000000000000000000000000000
12.375 는 앞에 0 이 빠진 표현을 보여 주고 있기 때문에 사실은 다음과 같은 결과가 나왔다고 봐야 한다.
12.375 : 0100000000101000110000000000000000000000000000000000000000000000
-12.375 : 1100000000101000110000000000000000000000000000000000000000000000
결과를 보면 -128 의 경우 MSB( most significant bit, 부호 비트 )가 1 인 것을 알 수 있다. 그리고 정수 표현과는 다르게 소수 표현은 보수 표현을 사용하지 않고 있음을 알 수 있다.
'Programming > 뇌를 자극하는 Java 프로그래밍' 카테고리의 다른 글
[ 뇌를 자극하는 Java 프로그래밍 ] 4장, Vitamin Quiz, 조건 연산자와 증가 연산자 (0) | 2013.04.09 |
---|---|
[ 뇌를 자극하는 Java 프로그래밍 ] 4장, Excercise 4-2 (0) | 2013.04.09 |
[ 뇌를 자극하는 Java 프로그래밍 ] 4장, Excercise 4-1 (0) | 2013.04.09 |
[ 뇌를 자극하는 Java 프로그래밍 ] 3장, 이것만은 알고 갑시다 (0) | 2013.04.08 |
[ 뇌를 자극하는 Java 프로그래밍 ] 3장, Excercise 3-3 (0) | 2013.04.08 |
[ 뇌를 자극하는 Java 프로그래밍 ] 3장, Vitamin Quiz, 2진 소수 (0) | 2013.04.08 |
[ 뇌를 자극하는 Java 프로그래밍 ] 3장, Excercise 3-1 (0) | 2013.04.08 |
[ 뇌를 자극하는 Java 프로그래밍 ] 2장, 이것만은 알고 갑시다 (0) | 2013.04.07 |
[ 뇌를 자극하는 Java 프로그래밍 ] 2장, Exception 2-6, 익셉션 처리 문제 (0) | 2013.04.07 |
[ 뇌를 자극하는 Java 프로그래밍 ] 2장, Excercise 2-5, 메서드 호출문의 연습 (0) | 2013.04.07 |