- ๊ธฐ๋ณธ ์ ์ผ๋ก ์๋ ๋ฐฉ๋ฒ์ 10์ง์ <====> 2์ง์๋ก ๋ฐ๊ฟ ๋์ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํ๋ค.
- ๋ถํธ๊ฐ ์๋ ํฌ๊ธฐ(Signed Magnitude) ๋ฐฉ์์ MSB๊ฐ ๋ถํธ๋ฅผ ๊ฒฐ์ ์ง๋ ์ญํ ์ ํ๋ค.
- ์๋ฅผ ๋ค์ด 8๋นํธ๊ฐ ํํํ ์ ์๋ ์ซ์์ ๊ฐ์ง์๋ 256๊ฐ์ด๋ค.
- ์ด ์ค MSB(Most Significant Bit)๋ฅผ ๋ถํธ๋ก ์ฌ์ฉ ํ๋ค๋ฉด?
- 0 ์ด๋ฉด ์์, / 1 ์ด๋ฉด ์์
- ์ด ๊ฒฝ์ฐ ์ซ์์ ํํ ๋ฒ์๋ -127 ~ 127 ๊น์ง ์ด๋ค.
- +0(0000 0000) ๊ณผ -0(1000 0000) ์ด ์๊ธด๋ค.
- 1๊ฐ์ ์ฌ๋ถ์ด ์๊ธด๋ค.
- 1์ ๋ณด์๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ.
- Signed Magnitude๋ฐฉ๋ฒ๊ณผ ์ ์ฌํ์ง๋ง, ํ๋ก์ ์ผ๋ก ๊ตฌํํ๊ธฐ๊ฐ ๋ ์ฝ๋ค๊ณ ํ๋ค.
- MSB ์ ๊ฐ์ด..
- 0 ์ผ ๊ฒฝ์ฐ => ์์๋ก ๊ณ์ฐ.
- 1 ์ผ ๊ฒฝ์ฐ => ๋ถํธ๋ฅผ ํฌํจํ์ฌ 1์ ๋ณด์๋ฅผ ๊ณ์ฐํ์ฌ ๊ตฌํ๋ค.
- 0010 1111 ์ธ ๊ฒฝ์ฐ ==> 2^5 + 2^3 + 2^2 + 2^1 + 2^0 = 47์ผ๋ก ๊ณ์ฐ.
- 1011 0001 ์ธ ๊ฒฝ์ฐ ==> 0100 1110 (1์ ๋ณด์) ==> 2^6 + 2^3 + 2^2 + 2^1 = 78 ==> -78 (์ด๊ธฐ์ MSB๊ฐ 1์ด์๋ฏ๋ก ๋ถํธ๋ฅผ ๋ถ์.)
- ์ด ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ก +0, -0, ์ฒ๋ผ ์ฌ๋ถ์ด ๋ฐ์ํ๋ค.
- 2์ ๋ณด์๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ.
- MSB์ ๊ฐ์ด...
- 0 ์ผ ๊ฒฝ์ฐ => ์์๋ก ๊ณ์ฐํ๋ค.
- 1 ์ผ ๊ฒฝ์ฐ => ํด๋น ๋นํธ์ 1์ ๋ณด์๋ฅผ ๊ตฌํ ํ, +1 ์ ๋ํ๋ค.
- 0010 1111 ์ธ ๊ฒฝ์ฐ ==> 2^5 + 2^3 + 2^2 + 2^1 + 2^0 = 47์ผ๋ก ๊ณ์ฐ.
- 1011 0001 ์ธ ๊ฒฝ์ฐ ==> 0100 1110 (1์ ๋ณด์) ==> 0100 1111 ==> 2^6 + 2^3 + 2^2 + 2^1 + 2^0 = 79 ==> -79 (์ด๊ธฐ์ MSB๊ฐ 1์ด์๋ฏ๋ก ๋ถํธ๋ฅผ ๋ถ์.)
- ์ด ๊ฒฝ์ฐ ์ฌ๋ถ์ด ์๊ธฐ์ง ์๋๋ค. ๋ชจ๋ ๊ฐ์ ๋ํด์ ํํ์ ํ ์ ์๋ค.
์์์ ํํ ๋ฐฉ์์๋ ํฌ๊ฒ 2๊ฐ์ง ์๋ค. ๊ณ ์ ์์์ ๋ฐฉ์ / ๋ถ๋ ์์์ ๋ฐฉ์.
์ด ๋ฌธ์์์๋ ๋ถ๋์์์ ๋ฐฉ์์ ์ค์ ์ ์ผ๋ก ๋ค๋ฃฌ๋ค.
๋ถ๋ ์์์ ๋ฐฉ์์ ํํํ๋ ๋ฐฉ์์ค์์ IEEE 754๋ฐฉ์์ ๋ค๋ฃฌ๋ค.*
ํ์ ์ ๋ฐ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์ ๋ฐฉ์์ ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
| Type | Sign bit | exponent bit | mantissa bits | precision |
|---|---|---|---|---|
| float | 1 | 8 | 23 | 6 ~ 7 |
| double | 1 | 11 | 52 | 15 ~ 16 |
- ๋นํธ๋ก ํํํด์ผ ํ ์์๊ฐ 3.625๊ฐ ์๋ค๊ณ ํด๋ณด์.
- ๋จผ์ ์ด ์๋ฅผ ์ด์ง์๋ก ํํํ๋ค. (11.101)
- ์ ์๋ถ๋ 11
- ์์๋ถ๋ 0.101 ์ด ๋๋ค.
- 0.625 * 2 = 1.25 ---- 1 ย ย |
- 0.25 * 2 = 0.5 ------ 0 ย ย |
- 0.5 * 2 = 1.0 -------- 1 ย โจ
- ์ค์ 3.625๋ 11.101๋ก ํํ๋๋ค.
- ์ง์ํํ๋ก ์์ ์๋ฅผ ํํํ๋ค.
- 1.1101 * (2^1)
- ๋ถํธ ๋นํธ ์ ํ๊ธฐ
- ๋จผ์ ๋ถํธ๋ฅผ ๊ฒฐ์ ํ์๋ฉด, ์์ ์ค์์ด๋, 0 ์ด๋ค.
- ์ง์๋ถ ๋นํธ ์ ํ๊ธฐ
- ๋ค์ ์ง์๋ถ์ ๋นํธ๋ฅผ ์ ํด๋ณด๋ฉด float์ ๊ฒฝ์ฐ bias๊ฐ 127์ ๋ํ๋ค. (์ด ๊ฐ์ excess-127์ด๋ผ ํ๋ค.)
- ๊ทธ ๊ฒฐ๊ณผ 127 + 1 = 128 ==> 1000 0000 ์ด ๋๋ค.
- ๊ฐ์๋ถ ๋นํธ ์ ํ๊ธฐ
- 1.1101 ์์ 1์ ๋บ ๋๋จธ์ง ๋ถ๋ถ 0.1101 ์ ๋๋จธ์ง ๋นํธ๋ 0์ผ๋ก ์ฑ์ด๋ค.
- ๋ค์๊ณผ ๊ฐ์ด ๋๋ค.
- 110 1000 0000 0000 0000 0000
- ํฉ์น๊ธฐ.
- ๋ถํธ์ ์ง์๋ถ, ๊ฐ์๋ถ๋ฅผ ์ ๋ถ ๊ตฌํ์์ผ๋ ์์ 3.625๋ ๋ค์๊ณผ ๊ฐ์ด ๋๋ค.
- 0100 0000 0110 1000 0000 0000 0000 0000
- 16์ง์๋ก ํํํด๋ณด๊ธฐ.
- 0x40670000
- ๋นํธ๋ก ํํํด์ผ ํ ์์๊ฐ 3.625๊ฐ ์๋ค๊ณ ํด๋ณด์.
- ๋จผ์ ์ด ์๋ฅผ ์ด์ง์๋ก ํํํ๋ค. (11.101)
- ์ ์๋ถ๋ 11
- ์์๋ถ๋ 0.101 ์ด ๋๋ค.
- 0.625 * 2 = 1.25 ---- 1 ย ย |
- 0.25 * 2 = 0.5 ------ 0 ย ย |
- 0.5 * 2 = 1.0 -------- 1 ย โจ
- ์ค์ 3.625๋ 11.101๋ก ํํ๋๋ค.
- ์ง์ํํ๋ก ์์ ์๋ฅผ ํํํ๋ค.
- 1.1101 * (2^(-1))
- ๋ถํธ ๋นํธ ์ ํ๊ธฐ
- ๋จผ์ ๋ถํธ๋ฅผ ๊ฒฐ์ ํ์๋ฉด, ์์ ์ค์์ด๋, 0 ์ด๋ค.
- ์ง์๋ถ ๋นํธ ์ ํ๊ธฐ
- ๋ค์ ์ง์๋ถ์ ๋นํธ๋ฅผ ์ ํด๋ณด๋ฉด float์ ๊ฒฝ์ฐ bias๊ฐ 1023์ ๋ํ๋ค. (์ด ๊ฐ์ excess-1023์ด๋ผ ํ๋ค.)
- ๊ทธ ๊ฒฐ๊ณผ 1023 + 1 = 1024 ==> 100 0000 0000 ์ด ๋๋ค.
- ๊ฐ์๋ถ ๋นํธ ์ ํ๊ธฐ
- 1.1101 ์์ 1์ ๋บ ๋๋จธ์ง ๋ถ๋ถ 0.1101 ์ ๋๋จธ์ง ๋นํธ๋ 0์ผ๋ก ์ฑ์ด๋ค.
- ๋ค์๊ณผ ๊ฐ์ด ๋๋ค.
- 1101 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
- ํฉ์น๊ธฐ.
- ๋ถํธ์ ์ง์๋ถ, ๊ฐ์๋ถ๋ฅผ ์ ๋ถ ๊ตฌํ์์ผ๋ ์์ 3.625๋ ๋ค์๊ณผ ๊ฐ์ด ๋๋ค.
- 0100 0000 0000 1101 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
- 16์ง์๋ก ๋ํ๋ด๋ณด๊ธฐ.
- 0x400D000000000000