부동소수점형표현

다운로드 : 

부동소수점형표현.c



실수의 비트 표현
    범위 : 10^-38 ~ 10 ^ 38

1. 이진화하기
    정수부 : 나누어 몫과 나머지를 취한다.
    소수부 : 곱하여 몫을 취한다.

5 . 75
          5 . 75                      ==>  101.11
    5/2...1   0.75 * 2 = 1.50 ... 1
    2/2...0   0.50 * 2 = 1.00 ... 1
    1.....

3 . 25
          3 . 25                      ==>   11.01
    3/2...1   0.25 * 2 = 0.5  ... 0
    1         0.5  * 2 = 1.0  ... 1

0 . 75
          0 . 75                      ==>    0.11
          0   0.75 * 2 = 1.50 ... 1
              0.50 * 2 = 1.00 ... 1


2. 정규화하기
    xxx.xxx ==> 1.xxx * 2^n 으로 만든다.

    101.11 => 1.0111 * 2 ^ 2 (왼쪽이동은 양수 2)
     11.01 => 1.101  * 2 ^ 1
      0.11 => 1.1    * 2 ^ -1(오른쪽이동은 음수 2)

3. 2진수로 조립하기
    부호부 : 1
    지수부 : 8 (기준값:127)
    가수부 : 23


    1.0111 * 2 ^ 2 => 부호 : 0
                      지수 : 129 = 2 + 127
                      가수 : 0111~

    0   100 0000 1   011 1000 0000 0000 0000 0000
    -   ----------   ----------------------------
    ------- ---- ------- ---- ---- ---- ---- ----
    4       0    B       8    0    0    0    0

    40 B8 00 00 ==========> 00 00 B8 40 (리틀 엔디언)


    1.101  * 2 ^ 1 => 부호 : 0
                      지수 : 128 = 1 + 127
                      가수 : 101~

    0   100 0000 0   101 0000 0000 0000 0000 0000
    -   ----------   ----------------------------
    ------- ---- ------- ---- ---- ---- ---- ----
    4       0    5       0    0    0    0    0

    40 50 00 00 ==========> 00 00 50 40


    1.1    * 2 ^ -1 => 부호 : 0
                      지수 : 126 = -1 + 127
                      가수 : 1~

    0   011 1111 0   100 0000 0000 0000 0000 0000
    -   ----------   ----------------------------
    ------- ---- ------- ---- ---- ---- ---- ----
    3       F    4       0    0    0    0    0

    3F 40 00 00 ==========> 00 00 40 3F