실수의 표현방법

2011. 4. 4. 00:55Programming

IEEE754 표준에 실수를 표현하는 방법은 아래와 같다.

 

우선 지수 형식을 세 가지로 나눈다.

 

1. 가수(mantissa)

2. 밑수(radix)

3. 지수(exponent)

 

예를 들어 생각해 보자.

 

-0.001101 * 2^2  이런 수가 있다고 할 때 2진수로 어떻게 표현될까?

 

1. 정규화부터

  정규화라 함은 x.xx... 형태로 변환하는 것을 말하는데,

  위의 수에서는  -1.101 이 되고 2의 2승은 역으로 소수점 세개만큼 감해졌음으로 인해

  2의 -1승이 된다.

  즉 정규화 결과는 -1.101 * 2^-1이다.

 

2. 지수를 바이어스로 표현

  8비트로 지수를 표현하는 방법을 바이어스된(biased) 표현법이라 한다.

  실제 지수에 바이어스를 더해서 나타낸다. 바이어스 개념이 없다면 지수는 8비트 0~255까지

  표현이 가능하지만 음의 지수를 표현할 수 없다.

  이 예에서 지수가 2^-1이므로 음수 -1 + 바이어스 이다.   이 때 IEEE표준이 127이므로

  -1 + 127 = 126 가 된다.

 

 3. 정리

  여기까지 다음과 같은 결과가 나온다.

  -1.101 * 2^126

 

  이제 4바이트 2진수로 표현하면 다음과 같다.

  우선 가수가 음수니까 첫 번째 비트는 1이된다.

  또 바이어스된 지수 126을 8비트로 나타내면 0111 1110 이다.(공학용 계산기로 하면 된다.)

  그 후 소수점을 나머지 23비트로 표현하기만 하면된다.

  결과값은

  1 0111 1110 10100000000000000000000

  이다.

'Programming' 카테고리의 다른 글

태국 날짜 간단히 확인하는 법  (0) 2014.04.30
맥 OSX에서 sublime text3 기본 셋팅하기  (0) 2014.04.29
JSON File Format  (0) 2014.04.18
cocos2d 3.0 쉬운 튜토리얼  (0) 2014.04.09
towlower, _wcslwr  (1) 2010.10.03