μ»΄ν¨ν°μμλ μμλ₯Ό νννκΈ° μν΄ λΆλμμμ ννμ μ¬μ©ν©λλ€.
λΆλμμμ ννμ $V = x \times 2^{y}$ ννμ μμλ₯Ό μΈμ½λ©ν©λλ€.
νμ¬ λλΆλΆμ μ»΄ν¨ν°λ IEEE λΆλμμμ νμ€ μ λ°©μμ μ§μν©λλ€.
μ΄μ λΆν° μ«μλ₯Ό μ΄λ»κ² IEEE λΆλμμμ νμμΌλ‘ λνλ΄λμ§μ,
μ«μλ₯Ό ν΄λΉ ννλ‘ μ ννκ² λνλΌ μ μμ λ μννκ² λλ κ·Όμ¬(rounding)μ λν΄ μμ보λλ‘ νκ² μ΅λλ€.
π§ λΉμ¨ μ΄μ§μ
λΆλμμμ μ λν΄ μμ보기 μ , λΉμ¨ μ΄μ§μμ λν΄ μμ보λλ‘ νκ² μ΅λλ€.
λΉμ¨ μ΄μ§μμ νκΈ°λ λ€μκ³Ό κ°μ΅λλ€.
$$b_m \;b_{m-1}\; ... b_2\; b_1\; b_0\; .\; b_{-1} \;b_{-2}\; ... \;b_{-n+1}\; b_{-n}$$
μ΄μ§ μμμ μ’μΈ‘μ μ«μλ€μ $2^i$ ννμ μλ¦Ώκ°μ κ°μ§λ©°,
μ°μΈ‘μ κ°μ $\frac{1}{2}^{i}$ μ μ리κ°μ κ°μ§λλ€.
μμ νκΈ°λ²μ λ°λ₯΄λ©΄ 0.11...1 ννμ μ«μλ€μ΄ 1 λ°λ‘ μλμ μλ₯Ό λνλ λλ€.
μλ₯Ό λ€μ΄ 0.111111μ $\frac{63}{64}$ μ λνλ λλ€.
μμ νκΈ°λ²μ $\frac{x}{2}^{k}$ ννλ‘ νμλλ μμλ€λ§ μ ννκ² νν κ°λ₯νλ©°,
$\frac{1}{3}$ λ±μ μ ννκ² νμν μ μμ΅λλ€.
π§ IEEE λΆλμμμ νμ
IEEE λΆλμμμ νμ€μ μλ₯Ό $V = $ $(-1)^{s}$ $\times$ $M$ $\times$ $2^{E}$ ννλ‘ λνλ λλ€.
μμ νμμμ $s$, $M$, $E$κ° μλ―Ένλ λ°λ κ°κ° λ€μκ³Ό κ°μ΅λλ€.
$s$ : λΆνΈλΉνΈ $s$ λ μ«μκ° μμμΈμ§ μμμΈμ§λ₯Ό κ²°μ ν©λλ€.
μ¦ μμμΈ κ²½μ° $s = 1$ μ΄λ©°, μμμΈ κ²½μ° $s = 1$ μ λλ€.
μ΄λ 0μ λνλ΄κΈ° μν λΆνΈ λΉνΈλ νΉλ³νκ² λ€λ£Ήλλ€.
$M$ : μ ν¨μ«μ $M$ μ $[1.0, \; 2.0)$ λλ $[0.0, \; 1.0)$ μ¬μ΄μ μ€μ κ°μ νμν©λλ€.
$E$ : μ§μ $E$ λ 2μ μ κ³±μΌλ‘, μ리κ°μ μ 곡ν©λλ€.
λΆλμμμ μμ λΉνΈλ€μ μ κ°λ€μ μΈμ½λ©νκΈ° μν΄ μΈκ°μ νλλ‘ λλμ΄μ§λλ€.
$(-1)^{s} \times M \times 2^e$ μΈμ½λ© ν¬λ§·
MSB(μ΅λμ ν¨λΉνΈ) sλ, λΆνΈ $s$ λ₯Ό μ§μ μΈμ½λ©ν©λλ€.
exp νλλ $E$λ₯Ό μΈμ½λ©ν©λλ€.
frac νλλ $M$μ μΈμ½λ©ν©λλ€.
βοΈ νλμ κΈΈμ΄
μ λ°λμ λ°λΌ μΈμ½λ©λλ νλμ κΈΈμ΄κ° λ¬λΌμ§λλ° λ€μκ³Ό κ°μ΅λλ€.
Single μ λ°λμ κ²½μ° ( float )
expλ 8λΉνΈ, fracμ 23λΉνΈμ κΈΈμ΄λ₯Ό κ°μ§λ©° λ°λΌμ μ΄ 32λΉνΈμ κΈΈμ΄λ₯Ό κ°μ§λλ€.
Double μ λ°λμ κ²½μ° ( double )
expλ 11λΉνΈ, fracμ 52λΉνΈμ κΈΈμ΄λ₯Ό κ°μ§λ©° λ°λΌμ μ΄ 64λΉνΈμ κΈΈμ΄λ₯Ό κ°μ§λλ€.
μ΄ μΈμλ νμ₯ μ λ°λ(Extended precision)κ° μλλ°, λ€μκ³Ό κ°μ΅λλ€.
νμ₯ μ λ°λ : expλ 15λΉνΈ, fracμ 63λΉνΈλ₯Ό μ¬μ©ν©λλ€. μ΄ 80λΉνΈμ κΈΈμ΄λ₯Ό κ°μ§λ©° 1λΉνΈλ μ¬μ©νμ§ μμ΅λλ€.
μ΄λ Intel(μΈν ) νΈν μ»΄ν¨ν°μμλ§ μ¬μ©λ©λλ€.
μ£Όμ΄μ§ λΉνΈ νμλ‘ μΈμ½λ©λ κ°μ expμ κ°μ λ°λΌ λ€μ μΈκ°μ§μ κ²½μ°λ‘ λ¬λΌμ§λλ€.
μ κ·ν(Normalized) κ° : expκ° λͺ¨λ 0μ΄ μλλ©°, λͺ¨λ 1μ΄ μλ κ²½μ°
λΉμ κ·ν(Denormalized) κ° : expκ° λͺ¨λ 0μΈ κ²½μ°
νΉμ κ°(Special values) : expκ° λͺ¨λ 1μΈ κ²½μ°
κ°κ°μ κ²½μ°μ λν΄μ μ΄ν΄λ³΄λλ‘ νκ² μ΅λλ€.
π§ μ κ·νλ κ° (Normalized Values)
expμ λΉνΈ ν¨ν΄μ΄ λͺ¨λ 0μ΄ μλλ©°, λͺ¨λ 1μ΄ μλ κ²½μ°, μ κ·ν μΈμ½λ©μ μ¬μ©ν©λλ€.
μ΄ κ²½μ° μ§μ νλ( $E$ )λ λΆνΈν μ μλ₯Ό λ°μ΄μ΄μ€(Bias) ννλ‘ νμλ©λλ€.
βοΈ μ§μ( $E$ )μ νμ
μ§μ κ°μ λ€μκ³Ό κ°μ΄ νμλ©λλ€.
$$E = exp - Bias$$
λ°λΌμ μΈμ½λ©λλ exp νλλ λ€μκ³Ό κ°μ΅λλ€.
$$exp = E + Bias$$
Biasλ μ λ°λμ μ’ λ₯μ λ°λΌ λ¬λΌμ§λλ°,
λ¨μΌ(Single) μ λ°λμμλ $Bias = 127 \;( 2^7- 1)$ μ΄λ©°,
μ΄μ€(Double) μ λ°λμμλ $Bias = 1023 \;( 2^{10}- 1)$ μ λλ€.
βοΈ Bias μ¬μ© μ΄μ
Single μ λ°λμ κ²½μ° μ§μ $E$ λ -126μμ 127 μ¬μ΄μ κ°μ κ°μ§ μ μμ΅λλ€.
κ·Έλ¬λ ν΄λΉ κ°μ Biasλ₯Ό λνλ©΄ μμ λ²μμ μ§μ $E$ μ κ°μ 1μμ 254 μ¬μ΄μ κ°, μ¦ μμμ κ°μ κ°μ§ μ μμ΅λλ€.
λ§μ°¬κ°μ§λ‘ Double μ λ°λμμλ Biasλ‘ μΈν΄ expλ 1μμ 2046 μ¬μ΄μ κ°μ κ°μ§ μ μμ΅λλ€.
μμμ κ°μ κ°μ§κ² νλ μ΄μ λ exp νλμ μμΉμλ κ΄λ ¨μ΄ μμ΅λλ€.
μ°μ $V = $ $(-1)^{s}$ $\times$ $M$ $\times$ $2^{E}$ μ μμμ, $M$ λ³΄λ€ $E$ κ° ν¬κΈ°λ₯Ό λΉκ΅νλ λ° μμ΄μ λ μ€μνκ² μμ©ν©λλ€.
μ¦ μ μλ‘ μΉλ©΄ $E$ κ° MSBμͺ½μ κ°κΉμ΄ κ²μ λλ€.
μ μμμμ ν¬κΈ° λΉκ΅λ₯Ό μκ°ν΄ 보면, 010000κ³Ό 001111 λ₯Ό λΉκ΅νλ κ²½μ° 010000μ΄ λ ν¬λ€λ κ²μ λ°λ‘ μ μ μμ΅λλ€.
μ΄λ MSBμμλΆν° μμνμ¬ μλ₯Ό λΉκ΅ν΄ λκ°κΈ° λλ¬Έμ΄λ©°, μ΄μκ°μ λ°©μμ μμμμλ μ¬μ©νκΈ° μν΄
$S$ | $EXP$ | $M$ μ νμμΌλ‘ μΈμ½λ©μ μ§ννλ κ²μ λλ€.
μ΄λ λ§μ½ EXPκ° μμμ κ°μ΄ μ¬ μ μλ€λ©΄, MSBμΈ $S$ μ΄νμ, κ·Έ λ€μ μμ λν΄μλ μμμ μμλ₯Ό ꡬλΆν΄μ€ νμμ±μ΄ μκΉλλ€.
μ΄λ Biasλ₯Ό λν΄ μμ λ²μλ‘ λ§λ€μ΄ μ€λ€λ©΄, μ΄λ₯Ό μ κ²½μ°μ§ μκ³ κ³μ°ν΄ μ€ μ μκΈ° λλ¬Έμ Biasλ₯Ό μ¬μ©ν©λλ€.
βοΈ μ ν¨μ«μ $M$
μ ν¨μ«μ $M$ μ 묡μμ μΌλ‘ 1λ‘ μμνλ κ²μΌλ‘ κ°μ£Όν©λλ€.
μ¦ λ€μκ³Ό κ°μ΅λλ€.
$$M = 1.xxx...xx_2$$
xxx...xx λ frac λΆλΆμ΄λ©°
$frac = 000...0$ μΌλ μ΅μ( $M = 1.0$ )μ΄λ©°,
$frac = 111...1$ μΌλ μ΅λ( $M = 2.0 - \epsilon $ )μ λλ€.
μ΄λ κ² ν¨μΌλ‘μ¨ 1λΉνΈλ₯Ό 무λ£λ‘ νμν μ μκ² λ©λλ€.
βοΈ μ κ·ν κ° μμ
float F = 15213.0; // λ¨μΌμ λ°λ
$15213_{10} = 111\; 0110\;1101\; 1101_2 $ μ λλ€.
μ΄λ₯Ό $(-1)^{s} \times M \times 2^{E}$ ννλ‘ λνλ΄λ©΄ λ€μκ³Ό κ°μ΅λλ€.
$111\; 0110\;1101\; 1101_2 = 1.$$110 \;1101\; 1011 \;01_2$ $\times 2^{13}$
$s = 0$
$M = 110\; 1101\; 1011\; 01_2$
$E = 13$
μ΄μ μ΄λ₯Ό μΈμ½λ©νλ©΄ λ€μκ³Ό κ°μ΅λλ€.
fracμ λ¨μΌ μ λ°λμμ 23λΉνΈμ κΈΈμ΄λ₯Ό κ°μ§λ―λ‘
$frac =$$ 110\;1101\;1011\;01$$00\; 0000\; 0000_2$ μ΄ 23λΉνΈ
μ°Έκ³ : $M = 110\; 1101\; 1011\; 01_2$
expλ λ¨μΌ μ λ°λμμ 8λΉνΈμ κΈΈμ΄λ₯Ό κ°μ§λ©°,
λ¨μΌ μ λ°λμμ Biasμ κ°μ $2^{8-1} - 1 = 127 $ μ΄λ―λ‘
$exp =$ $E$ $+$ $bias$$=$ $13$ $+$ $127$$= 140 = 1000\; 1100_2$ μ΄ 8λΉνΈ
μλ₯Ό ν©μ³ μΈμ½λ©νλ©΄ λ€μκ³Ό κ°μ΅λλ€.
$s$ $exp$ $frac$
$=$ $0$$100$ $0110$ $0$$110$ $1101$ $1011$ $0100$ $0000$ $0000$
π§ λΉμ κ·ν κ° (Denormalized Values)
expμ λΉνΈ ν¨ν΄μ΄ λͺ¨λ 0μΈ κ²½μ°μ ν΄λΉλ©λλ€.
μΈμ½λ© λ°©λ²μ μλμ κ°μ΅λλ€.
μ§μ $E$ μ κ²½μ° $E = 1 - Bias$ μ λλ€.
μ ν¨μ«μ $M$ μ κ²½μ° $M = 0.xxx..xx_2$ μ λλ€.
μ΄λ $1 - Bias$ λ₯Ό μ¬μ©νλ μ΄μ λ, λΉμ κ·ν κ°μμ μ κ·ν κ°μΌλ‘ λΆλλ½κ² μ΄μ΄μ§κ² νκΈ° μν΄μμ λλ€.
μ κ·ν κ°μμ $exp$ μ μ΅μκ°μ (single μ λ°λμ κ²½μ°) 0000 0001 μ λλ€.
λν $M$ μ κ°μ 1.0000...00μ λλ€.
μ΄λ $E$ μ κ°μ - 126μ λλ€.
μ΄λ $1 - Bias$ μ κ°κ³Ό λμΌνλ©°,
λΉμ κ·ν κ°μμ $M$ μ μ΅λκ°μ 0.1111...11μ λλ€.
λ°λΌμ $1-Bias$ λ₯Ό μ¬μ©νμ¬ λΉμ κ·ν κ°μμ μ κ·ν κ°μΌλ‘ λΆλλ½κ² μ΄μ΄μ§λλ€.
βοΈ μ¬μ© λͺ©μ
λΉμ κ·ν μΈμ½λ©μ λκ°μ§ λͺ©μ μΌλ‘ μ¬μ©λ©λλ€.
첫λ²μ§Έ λͺ©μ μ 0μ λνλ΄κΈ° μν¨μ λλ€.
ν΄λΉ κ²½μ° $exp = 000...0$ μ΄λ©°, $frac = 000...0$ μ λλ€.
μ κ·ν μΈμ½λ©μΌλ‘λ νμ $M$ μ΄ 1 μ΄μμ μλ₯Ό κ°μ§λ―λ‘
0μ λνλΌ μ μκΈ° λλ¬Έμ
0μ νμνκΈ° μν΄ λΉμ κ·ν μΈμ½λ©μ μ¬μ©ν©λλ€.
λΉμ κ·ν μΈμ½λ©μμλ $+0$ κ³Ό $-0$ μ λΉνΈ νμκ° λ€λ₯΄λ€λ κ²μ μ£Όμνμ¬μΌ ν©λλ€.
λλ²μ§Έ λͺ©μ μ 0μ λ§€μ° κ·Όμ ν κ°λ€μ λνλ΄λ λ° μμ΅λλ€.
ν΄λΉ κ²½μ° $exp = 000...0$ μ΄λ©°, $frac \neq 000...0$ μ λλ€.
μ΄λ Gradual underflow νΉμ±μ μ 곡νλλ°, μ΄λ κ°λ₯ν μ«μμ κ°λ€μ΄ 0.0 κ·Όμ²μμ κ°μ κ°κ²©μ κ°μ§λ€λ κ²μ μλ―Έν©λλ€.
π§ νΉμ κ° (Special Values)
expμ λΉνΈ ν¨ν΄μ΄ λͺ¨λ 1μΈ κ²½μ°μ ν΄λΉλ©λλ€.
βοΈ μ¬μ© λͺ©μ
첫λ²μ§Έ λͺ©μ μ 무νλλ₯Ό νμνκΈ° μν΄ μ¬μ©ν©λλ€.
ν΄λΉ κ²½μ° $exp = 111...1$ μ΄λ©°, $frac = 000...0$ μ λλ€.
무νλλ λ κ°μ λ§€μ° ν° κ³±μ μ΄λ, 0μΌλ‘ λλλ κ²½μ° λ± μ€λ²νλ‘μ°λ₯Ό λνλΌ μ μμ΅λλ€.
λλ²μ§Έ λͺ©μ μ Not a Number(NAN)λ₯Ό νμνκΈ° μν΄ μ¬μ©ν©λλ€.
ν΄λΉ κ²½μ° $exp = 111...1$ μ΄λ©°, $frac \neq 000...0$ μ λλ€
μ΄λ¬ν κ°λ€μ κ²°κ³Όκ°μ΄ μ€μλ 무νλκ° μλ $\sqrt{-1} $ λ±μ κ²°κ³Όλ‘ λ°νλ©λλ€.
π§ λΆλμμμ μμ
$exp$ κ° 4λΉνΈ, $frac$ μ΄ 3λΉνΈλ₯Ό κ°λ κ°μμ 8λΉνΈ IEEE λΆλμμμ νμ μμ μ λλ€.
λ°μ΄μ΄μ€λ $2^{4-1} = 7$ μ λλ€.
κ°μ₯ ν° λΉμ κ·ν μ $\frac{7}{512}$ μ, κ°μ₯ μμ μ κ·ν μ $\frac{8}{512}$ κ° λΆλλ½κ² μ°κ²°λλ κ²μ λ³Ό μ μλλ°,
μ΄λ μμμ μ κΉ μΈκΈνμλ―μ΄ $1-Bias$ λ₯Ό $E$ λ‘ μ¬μ©νμκΈ° λλ¬Έμ λλ€.
λν νμ κ°λ₯ν μ«μλ€μ΄ 0 λΆκ·Όμμ μ‘°λ°νκ² λͺ¨μ¬μλ κ²μ μ μ μμ΅λλ€.
μ‘°κΈ λ κ°λ¨νκ² λνλ΄κΈ° μν΄, $exp$ κ° 3λΉνΈ, $frac$ μ΄ 2λΉνΈλ₯Ό κ°λ κ°μμ 6λΉνΈ IEEE λΆλμμμ νμμΌλ‘ νμνλ κ²½μ°λ₯Ό μκ°ν΄ 보면 μλμ κ°μ΅λλ€.
π§ κ·Όμ¬λ² (Rounding)
λΆλμμμ μ°μ μ°μ°μ νμλ°©λ²μ΄ μ νλ λ²μμ μ λ°λλ₯Ό κ°κΈ° λλ¬Έμ μ€μ μ°μ°μ κ·Όμ¬κ°μ μ¬μ©ν μλ°μ μμ΅λλ€.
κ·Όμ¬μν¬ λ μ€μν λ¬Έμ λ μ΄λ€ κ°μ΄ μ νν μ€κ°μ μμΉνλ κ²½μ°, μ΄κ²μ 'μ΄λ λ°©ν₯μΌλ‘ κ·Όμ¬μν€λκ°' μ λλ€.
IEEE λΆλμμμ νμμ μλ λ€ κ°μ§μ κ·Όμ¬ λ°©λ²μ μ μν©λλ€.
$1.40 | $1.60 | $1.50 | $2.50 | -$1.50 | |
0 λ°©ν₯ | $1 | $1 | $1 | $2 | -$1 |
λ΄λ¦Ό ($-\infty$) | $1 | $1 | $1 | $2 | -$2 |
μ¬λ¦Ό ($+\infty$) | $2 | $2 | $2 | $3 | -$1 |
μΈμ μ§μ (default) | $1 | $2 | $2 | $2 | -$2 |
βοΈ μΈμ μ§μ (Round-To-Even)
μΈμ μ§μ λλ μ§μκ·Όμ¬λ²μ, λ κ°μ κ°λ₯ν κ°μ μ μ€μ κ°μΈ κ²½μ°μ μ΅μ μ리κ°μ΄ μ§μκ° λλλ‘ κ·Όμ¬νλ λ°©λ²μ λλ€.
μμλ₯Ό λ€λ©΄ λ€μκ³Ό κ°μ΅λλ€.
μμμ 2λ²μ§Έ μλ¦¬λ‘ κ·Όμ¬νλ κ²½μ°μ λλ€.
1.2349999 | $\to$ | 1.23 | μ€κ°λ³΄λ€ μμ κ²½μ° |
1.2350001 | $\to$ | 1.24 | μ€κ°λ³΄λ€ ν° κ²½μ° |
1.2350000 | $\to$ | 1.24 | μ€κ°μΈ κ²½μ° - κ° μ¬λ¦Όμ΄ λ°μ |
1.2450000 | $\to$ | 1.24 | μ€κ°μΈ κ²½μ° - κ° λ΄λ¦Όμ΄ λ°μ |
μ§μκ·Όμ¬λ²μ μ¬λ¬ μν©μμ μ°μΌ μ μλλ°, νκ°μ§ μμλ‘ μ΄μ§ μμμμμ μ§μκ·Όμ¬λ₯Ό μ΄ν΄λ³΄λλ‘ νκ² μ΅λλ€.
μ΄μ§ μμμμ μ§μλ μ΅μ μ ν¨ κ°μ΄ 0μΈ κ²½μ°λ₯Ό μλ―Έν©λλ€.
μ΄λ κ·Όμ¬μ λμμ΄ λλ μ€κ°κ°μ, κ·Όμ¬νλ μ리μ μ°μΈ‘μ λΉνΈκ° λ€μκ³Ό κ°μμΌ ν©λλ€.
$.xx$$x$$1000...0_2$
(κ·Όμ¬μ λμμ μ£Όν©μμΌλ‘ νμνμμ΅λλ€.)
μλ₯Ό λ€μ΄ $\frac{1}{4}$ μλ¦¬λ‘ κ·Όμ¬νλ κ²½μ°( μ¦ μ΄μ§ μμ«μ μ΄ν 2λ²μ§Έ μλ¦¬λ‘ κ·Όμ¬νλ κ²½μ° ) λ€μκ³Ό κ°μ΅λλ€.
κ° | μ΄μ§μ | κ·Όμ¬κ° | μ°μ° | κ·Όμ¬κ°(10μ§μ) |
$2 + \frac{3}{32}$ | 10.00011 | 10.00 | $\frac{1}{2}$λ³΄λ€ μμ κ²½μ° | $2$ |
$2 + \frac{3}{16}$ | 10.00110 | 10.01 | $\frac{1}{2}$λ³΄λ€ ν° κ²½μ° | $2 + \frac{1}{4}$ |
$2 + \frac{7}{8}$ | 10.11100 | 11.00 | $\frac{1}{2}$μΈ κ²½μ° - κ° μ¬λ¦Ό | $3$ |
$2 + \frac{5}{8}$ | 10.10100 | 10.10 | $\frac{1}{2}$μΈ κ²½μ° - κ° λ΄λ¦Ό | $2 + \frac{1}{2}$ |
π§ λΆλμμμ λ§λ€κΈ°
μ§κΈκΉμ§ μ΄ν΄λ³Έ λ΄μ©μ λ°νμΌλ‘ λΆλμμμ μΌλ‘ λ³ννλ μμλ₯Ό μ΄ν΄λ³΄λλ‘ νκ² μ΅λλ€.
βοΈ μμ 1 : $128_{10}$
IEEE-754 λΆλμμμ νμ€μ λ°λΌ, λ¨μΌ μ λ°λ λΆλμμμ μΌλ‘ λ°κΏλ³΄λλ‘ νκ² μ΅λλ€.
βοΈ μμ 2 : $9.6875_{10}$
'π₯ Computer Science > μμ€ν νλ‘κ·Έλλ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μμ€ν νλ‘κ·Έλλ°] μ΄μ λΈλ¦¬μ΄[2] - 쑰건문 (2) | 2022.10.12 |
---|---|
[μμ€ν νλ‘κ·Έλλ°] μ΄μ λΈλ¦¬μ΄ [1] (2) | 2022.10.10 |
[μμ€ν νλ‘κ·Έλλ°] - 2022λ λ Datalab (0) | 2022.10.04 |
[μμ€ν νλ‘κ·Έλλ°] μ μμ νν (0) | 2022.09.17 |
[μμ€ν νλ‘κ·Έλλ°] μ»΄ν¨ν° μμ€ν (0) | 2022.09.17 |