본문 바로가기

비전공자 스터디노트

실수를 표현하는 방법

어제 쓴 글은 정수를 2진수로 표현하는 방법이었는데 오늘은 실수를 2진수로 표현하는 방법을 정리하려고 한다.

10진수의 경우에는 소수점만 있으면 되는 것과 같이 2진수도 소수점이 있다.

 

고정소수점표현법

소수점의 위치를 임의로 정하는 방법인데 소수점의 위치가 항상 일정하다.

1 0 . 0 1

이런식으로 가운데 .이 있고 왼쪽은 2의 0승, 2의 1승이고 오른쪽에 있는 것은 2분의1, 4분의1이다.

따라서 저 비트의 값은 2와 4분의1이다.

 

이 방법은 쓸모있는 범위의 실숫값을 표현하려면 비트가 많이 필요하기 때문에 거의 쓰지않는다.

DSP라는 디지털 신호처리장치에 쓰이는 일부 컴퓨터가 쓴다고는 한다.

(그냥 이런 방법이 있다만 알아두자..)

 

부동소수점표현법

아주 작은 상수인 프랑크 상수, 엄청나게 큰 값인 아보가드로 수를 2진수로 표현하기 위해서 과학적 표기법을 사용한다.

과학적 표기법이란 

이렇게 표현하는 것을 말한다.

* 가수: 3.12

  지수 : 11

 

여기서 10을 2로 바꾸면 2진수에서 사용하는 부동소수점 표기법이라고 할 수 있다.

즉, 부동소수점 표현법은 지수와 가수를 분리해서 표현하는 것을 말한다. 

     -> 가수만 보면 항상 2진 소수점 위치가 같아보이기 때문

가수 지수
0 . 1 0 0 0.5
(1/2 *2의0승)

단점 

  1. 낭비되는 비트조합이 있다(0을 표현하는 방법이 4가지나 있음)

  2. 모든 수를 표현하지 못한다(6.5를 표현하지 못함)

 

하지만 컴퓨터에서 계산 수행 할 때 실수 표현하는 표준방법이다.

 

IEEE 부동소수점 수 표준 

부동소수점 표현법은 위의 예시보다 더 많은 비트를 사용한다.

낭비되는 비트조합을 최소화하고 반올림을 쉽게 하기 위한 트릭들이 있는데 이것을 정의한 것이다.

 

IEEE

 - Institute of Electrical and Electronic Enginners의 약자

 - 표준 제정 등 다양한 활동을 하는 전문가 조직

 

트릭 종류

1) 정규화

    - 같은 비트를 사용하더라도 정밀도를 높이고 싶을 때 사용

    - 가수를 조정해서 맨 앞에 0이 없게 만드는 것

 2) 디지털 이큅먼트(DEC)에서 고안한 것

    - 가수 맨 왼쪽 비트가 어차피 1이기 때문에 생략하는 것

 

* 굳이 다 알필요는 없지만 알아둬야 할 것

1. 기본 정밀도 부동소수점 수 

   - 32비트 사용, 7비트 정밀도로 표현가능

2. 2배 정밀도 부동소수점 수

   - 64비트 사용, 15비트 정밀도로 표현가능

   - 기본정밀도 보다 지수가 3비트 크고, 가수가 29비트 크다 (but  비트를 2배 더 많이 사용한다.. 비용..많이듦..)

 

편리한 점

  - 0으로 나누었을 때 생기는 양의 무한대, 음의 무한대를 표현하는 여러가지 비트패턴을 제공한다.

반응형