-123.45 라는 수를 정규화하면?
float는 32비트로(32비트 = 4바이트). float는 4바이트다.
부호비트 1비트 + 지수부 8비트 + 가수부 23비트로 이루어져있다.

 

1. 부호비트를 구할 때
부호가 +는 0, -는 1이다.

 

2. 가수부를 구할 때
123을 8비트로 표현해보자
01111011이다.
이제 0.45에 2를 계속 곱해준다.

0.45 x 2 = 0.9 0
0.9 x 2 = 1.8 1
0.8 x 2 = 1.6 1
0.6 x 2 = 1.2 1
0.2 x 2 = 0.4 0
.... 반복된다.

2를 곱한 값이 1이 넘으면 1를 제거하고 다시 곱해주자.
나온 값이 1보다 크거나 같으면 1 작으면 0으로 구한다.
01111011.01110... 이 가수부이다.
여기서 소수점을 가장 앞에있는 1까지 이동시킨다. (6칸)
1.11101101110... 이 상태에서 1. 을 버린다.
남은 것은 11101101110... 이 부분이 가수부가 된다.

 

3. 지수부 구할 때
127(단정밀도의 바이어스)+6 (소수점 이동 횟수)
133이 된다.
133을 8비트로 표현해보자
10000101이다.
부호비트는 - 이므로 1이다.
이제까지 구한 값을 취합한다.
1 10000101 11101101110...
-123.45의 정규화이다.

'C' 카테고리의 다른 글

[C] char와 int의 관계  (0) 2019.12.02
[C] C언어의 메모리 구조  (0) 2019.12.02
[C] 비트 연산자 계산방법  (0) 2019.12.02
[C] 8진수 16진수를 10진수로 나타내면?  (0) 2019.12.01
[C] (char*) 의 의미  (0) 2019.12.01
블로그 이미지

ryancha9

https://blog.naver.com/7246lsy

,