고정 소수점 보다 좀더 많은 소수를 나타 낼수 있는 장점이 있죠 !!
자 그럼 여기서 부동 소수점에 대해 알아 보겠습니다 ~~~
부동 소수점은 부호 비트 , 지수부 , 가수부 로 나누워졌습니다 !!!
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로 해주면 되요 ^^
'Soft Ware > C 언어!!' 카테고리의 다른 글
파일 입/출력을 공부 하기전 스트림에 대해서 !!! (0) | 2012.01.30 |
---|---|
구조체 패딩에 대해 알아 보겠습니다 ㅠㅠ (0) | 2012.01.27 |
realloc을 이용한 원형 리스트 입니다 (0) | 2012.01.13 |
퀵정렬 이해 및 소스 (0) | 2011.12.12 |
동적할당 과 랜덤함수를 이용하여 데이터값 넣기 (0) | 2011.12.12 |