본문 바로가기
자료구조

부동 소수점 데이터 표현 방식

by sleepycho 2024. 3. 19.

 

C언어의 변수 중 실수형 변수(flaot)가 있다. 이 변수는 실수를 소수점까지 표현하기 위해서 만들어진 변수이다. 오늘 알아볼 부동 소수점 데이터 표현 방식도 마찬가지로 영어 'floating'을 번역한 것으로 소수점에 대해서 다룬다. 부동 소수점 데이터 표현 방식은 고정 소수점 데이터 표현 방식에 비해 데이터 용량을 더 많이 차지한다는 단점이 있지만 대단히 큰 수나 작은 수의 표현이 가능하므로 보다 정밀한 수를 표현하기에 적합하다.

 

32비트에 표현할 경우 부호 비트에는 1비트, 지수부에는 8비트, 가수부에는 23비트가 할당된다. 부호 비트에는 양수이면 0, 음수이면 1을 표시하고, 지수부에는 지수 값이 127을 더한 값을 저장한다. 가수부는 표현할 수를 2진수로 변환한 뒤 정규화 과정을 통하여 소수점 이하 부분만 저장한다.

 

10진수 12.75를 부동 소수점 데이터 표현 방식으로 32비트에 표현할 경우,

 

0 1000 0010 1001 1000 0000 0000 0000 000이 된다.

 

  • 잠깐! 지수부에는 왜 127을 더해야 하는가?

127을 더해야 하는 이유에는 바이어스 값이란 것과 연관되어 있다. 바이어스 값은 부동 소수점 표현 방식에서 지수 부분을 표현하는 데 사용된다. 이 값은 정규화의 표준화를 돕기 위해 도입되었다. 바이어스 값을 더함으로써 지수를 양수로 조정하고, 이를 통해 정규화된 지수 부분을 사용하여 부동 소수점 숫자를 표현한다. 꽤나 중요해보인다. 

'자료구조' 카테고리의 다른 글

CRC 체크썸이란 무엇인가?  (0) 2024.04.09
문자는 어떻게 저장되고 표현될까?  (0) 2024.04.09
10진수 표현 방식  (0) 2024.03.19
2의 보수를 사용하면 좋은 점  (0) 2024.03.17
자료의 표현 단위  (0) 2024.03.17