Soft Ware/C 언어!!

부동 소수점에 대해서 파헤쳐보았습니다 !!!

달려가보자 2012. 1. 27. 21:30


고정 소수점 보다 좀더 많은 소수를 나타 낼수 있는 장점이 있죠 !!

자 그럼 여기서 부동 소수점에 대해 알아 보겠습니다 ~~~

부동 소수점은 부호 비트  ,  지수부 ,  가수부 로 나누워졌습니다 !!!

float 형 같은 경우 부호 비트는 최상위 1비트인 31 번에  있는 비트가 부호 비트 입니다.

그리고 지수부는 음수와 양수를 나타내기 위해서 127이라는 바이너리라는것이 있습니다.

왜 있을까요? ㅡㅡ?  요건 위와 같이 음수를 나타내기 위한것입니다 .

8비트를 음수를 나타 내기 위해서 127 위의 값들은 양수가 되구요

127밑에 있는 숫자는 음수가 되겠죠 그럼 지수부를 어떻게 나타낼수 있는지 예제를 
 
통해 알아보겠습니다. 음하하하하 오랜만에 블러그에 글을 올리니깐 기분이 좋네요 ^^

자    2.14 와 -0.014를 각각 지수부로 나타내 보겠습니다 .

먼저 2.14   << 이늠을 이진수로 나타내야 되요 ㅠㅠㅋㅋ

우선  정수부분은 10.00100101.....이렇게 나오네요 실수를 어떻게 이진수로 했을까요? ㅎㅎ

방법은
          0.14
        *     2
  ----------
          0.28  --------  0
       *      2
  -----------
         0 .56        -------0

         1.26        --------1
         0.26

이런식으로 계속 2를 곱해서 1.26이 나온다 그럼 1를 위에 처럼 빼주고 0.26으로 바꾸고 계속 2를

곱하면 되요 ㅎㅎ 생각보다 쉽죠? ㅎㅎㅎㅎㅎ

자 그럼 다시 부동소수점으로 가겠습니다 슝~~~~

10.00100101 이라면 부동소수점은 1.xxxxxx 로 바꿔 줘야 되요

1.000100101 으로 고치고 *2^1 이죠 ㅎㅎ 자 여기서 1이 지수부가 되구요 127+1 해서

8비트에 넣어주시면 됩니다 ^^  .000100101 이 가수부가 됩니다. 이처럼 하면 되구요

음수는 부호 비트만 1로 해주면 되요 ^^