10진수 부동소수점 16진수로 변환 예제

박정재·2023년 3월 31일
0

+12.9375를 IEEE 754 Floating Point Representation(32bit single precision 기준)으로 변경한 bit 32자리를 16진수(hexadecimal)로 변환.

먼저 12.9375를 정수부와 소수부로 나눈다.
정수부: 12
소수부: 0.9375

12(10) = 1100(2)

소수부는 계속 2를 곱해주고 정수부를 무시하며 1로 떨어질 때까지 혹은 똑같은 소수점이 나올 때까지 반복한다.

0.9375 2 = 1.875
0.875
2 = 1.75
0.75 2 = 1.5
0.5
2 = 1.

정수부를 위에서부터 가져온다.
0.1111(2)

이진수로 변환 결과
12.9375(10) = 1100.1111(2) = 1.1001111(2) * 2^3

12.9375는 양수이므로 부호 비트는 0.
지수 부분은 3 + bias(127) = 130(10) = 1000 0010(2)

가수 부분까지 합하여 부동 소수점 방식으로 표현 후, 16진수로 변환.
0100 0001 0100 1111 0000 0000 0000 0000(2)
=>414f0000(16)

profile
Keep on dreaming and dreaming

0개의 댓글