CS ๊ณต๋ถ€

๊ณ ์ • ์†Œ์ˆ˜์ ๊ณผ ๋ถ€๋™ ์†Œ์ˆ˜์ 

์€์ง„ 2021. 10. 11. 19:47

์ •์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜

2๋ฅผ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์ฝ์Œ

 

์‹ค์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜

 

์‹ค์ˆ˜๋ถ€๋„ ์ •์ˆ˜๋ถ€์ฒ˜๋Ÿผ ์ฒ˜๋ฆฌํ•  ๋•Œ

๋ฌธ์ œ : ์ค‘๋ณต ๋ฐœ์ƒ

1.9 -> 1.1001

1.41 -> 1.100 1

 

 

ํ•ด๊ฒฐ : 2๋ฅผ ๊ณฑํ•˜๋ฉด์„œ ์ •์ˆ˜ (1, 0)์„ ๋ฝ‘์•„๋ƒ„

์‹ค์ˆ˜ 0.625 --> ์ด์ง„์ˆ˜ 0.101

0.625 * 2 = 1.25 -> ์ •์ˆ˜ 1 ๋ฝ‘๊ธฐ, ๋‚˜๋จธ์ง€ 0.25

0.25 * 2 = 0.5 -> ์ •์ˆ˜ 0 ๋ฝ‘๊ธฐ, ๋‚˜๋จธ์ง€ 0.5

0.5 * 2 = 1.0 -> ์ •์ˆ˜ 1 ๋ฝ‘๊ธฐ, ๋‚˜๋จธ์ง€ 0์ด ๋‚˜์˜ค๋ฉด ์ข…๋ฃŒ, ๋ฝ‘์€ ์ˆซ์ž๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ฝ์–ด์คŒ

 

 

 

๊ณ ์ •์†Œ์ˆ˜์  (Fixed Point)

32๋น„ํŠธ ์‹ค์ˆ˜๋ฅผ ๊ณ ์ • ์†Œ์ˆ˜์  ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ํ•  ๊ฒฝ์šฐ

 

 

์‹ค์ˆ˜ 7.625 --> 2์ง„์ˆ˜ 111.101
16๋น„ํŠธ ์ฒด๊ณ„๋ฅผ ์“ด๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

 

๋ถ€ํ˜ธ ๋น„ํŠธ : ์ˆซ์ž ์ž์ฒด๊ฐ€ ์–‘์ˆ˜๋ฉด 0, ์Œ์ˆ˜๋ฉด 1

์†Œ์ˆ˜๋ถ€ : ๋‚จ๋Š” ์ž๋ฆฌ๋Š” 0 (์†Œ์ˆ˜์ ์˜ ์œ„์น˜๋Š” ๋ฏธ๋ฆฌ ์ •ํ•ด๋‘ )

 

 

์žฅ๋‹จ์ 

๊ตฌํ˜„ํ•˜๊ธฐ ํŽธ๋ฆฌ

ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์ˆ˜์˜ ๋ฒ”์œ„ ๋‚ฎ์Œ. ํ•œ์ •์ 

๋†’์€ ์ •๋ฐ€๋„๊ฐ€ ํ•„์š”์—†๋Š” ์‹œ์Šคํ…œ์— ์‚ฌ์šฉ

 

 

 

๋ถ€๋™์†Œ์ˆ˜์  (Floating Point) 

  1. ์ •๊ทœํ™” (Normalization)
  2. IEEE ํ‘œ์ค€์— ๋”ฐ๋ฅธ bias๋ฅผ ์ง€์ˆ˜๋ถ€์— ๋”ํ•˜๊ธฐ (์ง€์ •๋œ ์ˆซ์ž๋ฅผ ๋”ํ•˜์—ฌ ์ง€์ˆ˜๋ถ€์˜ ์Œ์–‘ ํ‘œํ˜„)

 

 

1. ์ •๊ทœํ™”

ํ˜•์‹ : 1.xxxx... * 2^n

์ •์ˆ˜๋ถ€์— 1์ด ์žˆ๋Š” ๊ฒฝ์šฐ: ์†Œ์ˆ˜์ ์„ ์™ผ์ชฝ์œผ๋กœ ์ด๋™

์ •์ˆ˜๋ถ€๊ฐ€ 0์ผ ๊ฒฝ์šฐ : 1๋งŒ ๋‚จ์„ ๋•Œ๊นŒ์ง€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ 

n ์ž๋ฆฌ๋Š” ์†Œ์ˆ˜์ ์„ ์ด๋™ํ•œ ์นธ ์ˆ˜

 

์‹ค์ˆ˜ 7.625๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ --> 111.101

111.101์„ ์ •๊ทœํ™” --> 1.11101 * 2^2 (์†Œ์ˆ˜์  2์นธ ์ด๋™ํ–ˆ์œผ๋ฏ€๋กœ n์€ 2)

 

 

2. IEEE 754 

ํ˜„์žฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐฉ์‹์€ ๋Œ€๋ถ€๋ถ„ IEEE 754 ํ‘œ์ค€์„ ๋”ฐ๋ฅด๊ณ  ์žˆ์Œ

์ง€์ˆ˜๋ถ€๋Š” bias๋ผ๋Š” ์ง€์ •๋œ ์ˆซ์ž๋ฅผ ๋”ํ•œ ๋‹ค์Œ ์ถ”๊ฐ€

 

์ •๊ทœํ™”ํ•œ 1.11101 * 2^2

 

๋ถ€ํ˜ธ ๋น„ํŠธ : ์ „์ฒด ์ˆซ์ž์˜ ์Œ์–‘ (0์ด๋ฉด ์–‘์ˆ˜, 1์ด๋ฉด ์Œ์ˆ˜)

์ง€์ˆ˜๋ถ€ : 2 

๊ฐ€์ˆ˜๋ถ€ : 11101 (๋‚จ๋Š” ์ž๋ฆฌ๋Š” 0)

 

bias : IEEE ํ‘œ์ค€์—์„œ 32๋น„ํŠธ๋ฅผ ์“ฐ๋Š” ๊ฒฝ์šฐ 127 ๊ทœ์ •

๋”ฐ๋ผ์„œ ์ง€์ˆ˜๋ถ€ : 2 + 127 = 129 --> 2์ง„์ˆ˜ 10000001 (8๋น„ํŠธ)

 

 

 

 

bias ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

์ง€์ˆ˜๊ฐ€ ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ

2์ง„์ˆ˜ 0.000101 --> ์ •๊ทœํ™” 1.01 * 2^-4

์ง€์ˆ˜๋ถ€ -4๋ฅผ ๊ทธ๋Œ€๋กœ ์ €์žฅํ•˜๊ธฐ ๊ณค๋ž€

32๋น„ํŠธ ์‹ค์ˆ˜์ผ ๊ฒฝ์šฐ bias 127๋ฅผ ๋”ํ•˜์—ฌ ์ง€์ˆ˜๋ถ€์˜ 0~127 ๊ตฌ๊ฐ„์€ ์Œ์ˆ˜, 128~255 ๊ตฌ๊ฐ„์€ ์–‘์ˆ˜๋ฅผ ํ‘œํ˜„

 

 

bias 1023

์ง€์ˆ˜๋ถ€๊ฐ€ 2^11 ์ฆ‰ 2048๊ฐœ์˜ ์ˆ˜๋ฅผ ํ‘œํ˜„

bias๋Š” 1023

์ง€์ˆ˜๋ถ€์˜ 0~1023 ๊ตฌ๊ฐ„์€ ์Œ์ˆ˜, 1024~2047 ๊ตฌ๊ฐ„์€ ์–‘์ˆ˜



 

์žฅ๋‹จ์ 

๊ณ ์ •์†Œ์ˆ˜์ ๋ณด๋‹ค ๊ณผ์ •์ด ๋ณต์žก

๋น„ํŠธ ์ˆ˜ ๋Œ€๋น„ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ ๋„“์Œ

ํ˜„ ๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ์‹ค์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ๋ถ€๋™์†Œ์ˆ˜์  ์‚ฌ์šฉ

 

 

 

 

 

์ถœ์ฒ˜

https://gsmesie692.tistory.com/94 [ํ™˜์ƒ๋น› ๋ณ„ํ•˜๋Š˜: Reb∞t]

https://tcpschool.com/cpp/cpp_datatype_floatingPointNumber [TCP]