3. 부동소수점을 활용한 실수 표현 (IEEE 754 Standard Float)
반응형
실수
- 정수는 이산적이지만, 실수는 연속적이다.
- 컴퓨터 공학에서, 실수는 Floating Point Numbers라고도 불린다.
- 아주 크거나 아주 작은 값을 가질 수 있다.
- $4,123,122,321.2$
- $0.0000000000002$
Scientific Notation (과학적 기수법)
실수를 아래와 같이 나타낼 수 있다.
$
\begin{align*}
11000.1 &= 11000.1 \times 2^0\\
&= 1100.01 \times 2^1\\
&= 110.001 \times 2^2\\
&= 11.0001 \times 2^3\\
&= 1.10001 \times 2^4\\
\end{align*}
$
정수 부분을 1만 남도록 옮긴 상태를 Scientific Notation이라 한다. Scientific Notation은 아래의 3요소를 갖는다.
- The significant digits
- The power
- The base
이때, Base는 보통 절대적이다.(우리가 알고있다.)
우리의 수 위에서 소수점의 위치는 power에 결정된다. 이것이 실수를 Floating(떠있는) Point(소수점)라고 부르는 이유다.
Floating Point
IEEE의 Float 표준을 따른다.
하나의 실수는 binary32 4-byte 크기에 저장된다.
$(-1)^s \times 1.f \times 2^{e-127}$
- s = sign (양수면 0, 음수면 1)
- e = 2의 지수, excess 127 notation을 쓴다. (0~255 사이의 e를 통해 -127~128의 표현)
- f = binary fraction, 정수부의 1을 제외하고 실수부만을 저장
$s$ | $e$ | $f$ |
1-bit | 8-bits | 23-bits |
십진수 / IEEE 변환
- 십진수를 이진수로 변환한다.
- 이진수를 base 2의 Scientific Notation으로 고쳐쓴다.
- 정수부의 1을 제외한 실수부분만 취해 $f$를 얻고 23비트 중 남는 부분은 0으로 뒤를 채운다.
- 부호 비트인 $s$를 정한다.
- 2의 지수에 127을 더하여 $e$를 구한다.
- $e$를 8비트로 변환한다. (필요하면 뒤에 0을 붙인다.)
- $s$, $e$, $f$를 IEEE format에 맞게 정리한다.
IEEE / 십진수 변환
- 이진수를 1, 8, 23 개씩 나눈다.($s$, $e$, $f$)
- $e$를 십진수로 바꾸고, 127을 빼서 지수를 구한다.
- $f$ 뒤쪽의 0들을 지우고 $1.f \times 2^exp$ 형태로 정리한다.
- 지수가 0이 되도록 소수점을 옮겨 원래 숫자를 얻는다.
- 이진수를 십진수로 변환한다.
- $s$가 1이면, 마이너스 부호를 붙여준다.
IEEE Special Cases
IEEE floating point는 몇가지 특별한 표현을 갖는다.
- $e = 0,\quad\quad f = 0$ 숫자가 0.0이다.
- $e = 255,\quad f = 0$ $\infty$ 또는 $-\infty$
- $e = 255,\quad f \not= 0$ Not a number (NaN)
- $e = 0,\quad\quad f \not= 0$ $(-1)^s \times 0.f \times 2^{-126}$
Floating Point의 덧셈과 뺄셈
- 2의 지수가 같도록 두 수를 정렬한다.
- 덧셈/뺼셈 연산을 수행한다.
- 다시 Scientific Notation으로 정리한다.
Floating Point의 곱셈
- $1.f$ 끼리는 곱한다.
- 지수는 서로 더한다.
- 정리한다.
Floating Point의 나눗셈
- $1.f$ 끼리는 나눈다.
- 지수는 뺀다.
- 정리한다.
반응형
'학부 수업 > 디지털시스템' 카테고리의 다른 글
5. 불 대수 (Boolean Algebra) (0) | 2020.04.11 |
---|---|
4. 디지털 논리 회로 (Logic Gates) (0) | 2020.04.11 |
2. 수 체계: 진수 변환과 이진수의 실수/음수 표현(Number System) (0) | 2020.04.11 |
1. 디지털 시스템 개요 (0) | 2020.04.10 |
세종대학교 디지털 시스템 강의노트 (0) | 2020.04.10 |
댓글
이 글 공유하기
다른 글
-
5. 불 대수 (Boolean Algebra)
5. 불 대수 (Boolean Algebra)
2020.04.11 -
4. 디지털 논리 회로 (Logic Gates)
4. 디지털 논리 회로 (Logic Gates)
2020.04.11 -
2. 수 체계: 진수 변환과 이진수의 실수/음수 표현(Number System)
2. 수 체계: 진수 변환과 이진수의 실수/음수 표현(Number System)
2020.04.11 -
1. 디지털 시스템 개요
1. 디지털 시스템 개요
2020.04.10