written by yechoi

(๋ฒˆ์—ญ) ๊ณ ์ •์†Œ์ˆ˜์  ํ‘œํ˜„์— ๋Œ€ํ•œ ์ดํ•ด ๋ณธ๋ฌธ

Born 2 Code/C, C++

(๋ฒˆ์—ญ) ๊ณ ์ •์†Œ์ˆ˜์  ํ‘œํ˜„์— ๋Œ€ํ•œ ์ดํ•ด

yechoi 2020. 11. 1. 17:29
๋ฐ˜์‘ํ˜•

๐Ÿ‘‰์ด ๊ธ€์€ Berkeley์˜ Introduction to Fixed Point Number Representation๋ฅผ ๋ฒˆ์—ญํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์†Œ ์˜์—ญํ•œ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉฐ, ์˜ค์—ญํ•œ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€์„ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

Introduction to Fixed Point Number Representation

In real life, we deal with real numbers -- numbers with fractional part. Most modern computer have native (hardware) support for floating point numbers. However, the use of floating point is not necessarily the only way to represent fractional numbers. Thi

inst.eecs.berkeley.edu

 

 

๊ฐœ๋ก : ํ˜„์‹ค ์† ์‹ค์ˆ˜๋“ค

ํ˜„์‹ค์—์„œ ์šฐ๋ฆฌ๋Š” ๋งŽ์€ ์‹ค์ˆ˜๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค - ๋ถ„์ˆ˜๋ฅผ ํฌํ•จํ•œ ์ˆซ์ž๋“ค์š”. ํ˜„๋Œ€ ์ปดํ“จํ„ฐ์˜ ๋Œ€๋ถ€๋ถ„์€ ๋ถ€๋™์†Œ์ˆ˜์  ์‹ค์ˆ˜์— ๋Œ€ํ•œ (ํ•˜๋“œ์›จ์–ด์ ์ธ) ์ง€์›์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถ€๋™์†Œ์ˆ˜์  ์‹ค์ˆ˜๋Š” ๋ถ„์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„  ์‹ค์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ณ ์ •์†Œ์ˆ˜์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•  ๊ฒ๋‹ˆ๋‹ค. ๊ณ ์ •์†Œ์ˆ˜์  ์‚ฌ์šฉ์€ ์ •ํ™•๋„๋ณด๋‹ค๋Š” ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•œ DSP(Digital Signal Processing)์ด๋‚˜ ๊ฒŒ์ž„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ž์ฃผ ์“ฐ์ž…๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋ณด๊ฒ ์ง€๋งŒ ๊ณ ์ •์†Œ์ˆ˜์  ๊ณ„์‚ฐ์€ ๋ถ€๋™์†Œ์ˆ˜์  ๊ณ„์‚ฐ๋ณด๋‹ค ๋น ๋ฆ…๋‹ˆ๋‹ค.

 

 

์‹ค์ˆ˜๋กœ ์‹œ์ž‘ํ•˜์ฃ 

์ด๋Ÿฌํ•œ ์ด์ง„๋ฒ• ํ‘œํ˜„์˜ ์ˆ˜๊ฐ€:

110101

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์„ ํ‘œํ˜„ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋– ์˜ฌ๋ ค๋ณด์„ธ์š”.:

1 * 25 + 1 * 24 + 0 * 23 + 1 * 22 + 0* 21 + 1 * 20

= 32 + 16 + 4 + 1

= 5310

์ด์ œ 53์„ 2๋กœ ๋‚˜๋ˆ„๋ฉด, ๊ฒฐ๊ณผ๋Š” 26.5์ผ๊ฒ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ์ •์ˆ˜ ํ‘œํ˜„๋งŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ์ด๊ฑธ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•ด์•ผ ํ• ๊นŒ์š”?

 

 

 

 

๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ

์œ„์˜ 26.5์™€ ๊ฐ™์ด ๋ถ„์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ํ•ต์‹ฌ์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ(binary point)์˜ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ๋Š” 10์ง„๋ฒ•์—์„œ 10์ง„๋ฒ• ์†Œ์ˆ˜์  ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ˆซ์ž์˜ ์ •์ˆ˜ ๋ถ€๋ถ„๊ณผ ๋ถ„์ˆ˜ ๋ถ€๋ถ„์„ ๋‚˜๋ˆ„๋Š” ๊ตฌ๋ถ„์ž ์—ญํ• ์„ ํ•˜์ฃ .

์‹ญ์ง„๋ฒ•์—์„œ ์‹ญ์ง„๋ฒ• ์†Œ์ˆ˜์ ์€ ๊ณ„์ˆ˜๊ฐ€ 10^0 = 1 ๋กœ ๊ณฑํ•ด์ ธ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•”์‹œํ•˜์ฃ . ์˜ˆ๋ฅผ ๋“ค์–ด 26.5๋ผ๋Š” ์ˆ˜์—์„œ ๊ณ„์ˆ˜ 6์€ 10^0 =1์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์†Œ์ˆ˜์  ์˜†์˜ 4์—๋Š” ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚˜๋‚˜์š”? ์šฐ๋ฆฌ์˜ ๊ฒฝํ—˜์œผ๋กœ ๋ฏธ๋ฃจ์–ด ๋ดค์„ ๋•Œ, 10^-1์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๊ฒ ๋„ค์š”. ์šฐ๋ฆฌ๋Š” "26.5"๊ฐ€ "์ด์‹ญ ์œก ๊ทธ๋ฆฌ๊ณ  ๋ฐ˜"์˜ ๊ฐ€์น˜๋ฅผ ์ง€๋‹Œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„์š”. ์™œ๋ƒํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ํ‘œํ˜„๋˜๋‹ˆ๊นŒ์š”.

2 * 101 + 6 * 100 + 5 * 10-1 = 26.5

์ด์ง„๋ฒ• ํ‘œํ˜„์—๋„ ์‹ญ์ง„๋ฒ• ์†Œ์ˆ˜์ ๊ณผ ๊ฐ™์€ ๊ฐœ๋…์ด ์ ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ"๋ฅผ ๋งŒ๋“ค๋ฉด์š”. 10์ง„๋ฒ•์—์„œ์ฒ˜๋Ÿผ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ๋Š” ๊ณ„์ˆ˜๊ฐ€ 2^0 =1 ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์–ด์š”. ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ ์™ผ์ชฝ์˜ ๋ชจ๋“  ๋ฐ‘๊ธฐ์ˆ˜(digits)(๋˜๋Š” ๋น„ํŠธ)๋Š” 2^0, 2^1, 2^2 ์™€ ๊ฐ™์€ ๊ฐ€์ค‘์น˜๋ฅผ ์ง€๋‹ˆ์ฃ . ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ ์˜ค๋ฅธ์ชฝ์˜ ๋ฐ‘๊ธฐ์ˆ˜(๋˜๋Š” ๋น„ํŠธ)๋Š” 2^-1, 2^-2, 2^-3 ๋“ฑ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆซ์ž๋Š”

11010.1

์ด๋Ÿฌํ•œ ๊ฐ’์„ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.:

2^5 2^4 2^3 2^2 2^1 2^0 2^-1 2^-2 2^-3
... 1 1 0 1 0 1 0 ...

= 1 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 0* 20 + 1 * 2-1

= 16 + 8 + 2 + 0.5

= 26.5

 

 

์‹œํ”„ํŒ…์ด ํ‚ค์ž…๋‹ˆ๋‹ค

์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ธ ๋…์ž๋ผ๋ฉด 53๊ณผ 26.5์˜ ๋น„ํŠธ ํŒจํ„ด์ด ์ •ํ™•ํžˆ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค. ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ์˜ ์œ„์น˜์ž…๋‹ˆ๋‹ค. 10์ง„๋ฒ• 53์—๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅด๊ฒŒ ๋งํ•˜๋ฉด ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ๊ฐ€ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ, 0์˜ ์œ„์น˜์— ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์ฃ . (์‹ญ์ง„๋ฒ•์—์„œ 53๊ณผ 53.0์ด ๊ฐ™์€ ๊ฑธ ๋– ์˜ฌ๋ ค ๋ณด์„ธ์š”.)

2^5 2^4 2^3 2^2 2^1 2^0 Binary Point 2^-1 2^-2 2^-3
1 1 0 1 0 1 . 0 0 0

10์ง„๋ฒ•์ˆ˜ 26.0๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ๊ฐ€ 10์ง„๋ฒ•์ˆ˜ 53๋ณด๋‹ค ํ•œ ์นธ ์™ผ์ชฝ์— ์žˆ์Šต๋‹ˆ๋‹ค:

2^5 2^4 2^3 2^2 2^1 2^0 Binary Point 2^-1 2^-2 2^-3
0 1 1 0 1 0 . 1 0 0

์ง€๋‚œ ์ˆ˜์—…์„ ๋ณต์Šตํ•˜๋ฉด, ์ •์ˆ˜๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 1๋น„ํŠธ ๋ฐ€๋ฉด 2๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๊ณ  ์–˜๊ธฐ๋ฅผ ํ–ˆ์—ˆ์ฃ . ์ด๋Ÿฌํ•œ ์‹œํ”„ํŒ…์„ ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ๋กœ ํ–ˆ๋‹ค๊ณ  ์น˜๋ฉด, ์ •์ˆ˜์—์„  ๋ถ„์ˆ˜ ๋ถ€๋ถ„์ด ์—†์œผ๋ฏ€๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฑด ๋ฐ”์ด๋„ˆ๋ฆฌ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ์˜ ์ •์ˆ˜์˜ ํ•œ๊ณ„์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

์ˆ˜ํ•™์ ์œผ๋กœ ๋ณดํ†ต ๊ณ ์ • ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์˜ค๋ฅธ์ชฝ์œผ๋กœ 1๋น„ํŠธ ์˜ฎ๊ธด๋‹ค๋Š” ๊ฑด ํ•ญ์ƒ 2๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋น„์Šทํ•˜๊ฒŒ ์™ผ์ชฝ์œผ๋กœ 1๋น„ํŠธ ๋ฐ€๋ฉด 2๋กœ ๊ณฑํ•˜๋Š” ๊ฒƒ์ด๊ฒ ์ฃ .

 

 

๊ณ ์ •์†Œ์ˆ˜์  ํ‘œํ˜„

์œ„์˜ ์‹œํ”„ํŒ… ๊ณผ์ •์€ ๊ณ ์ •์†Œ์ˆ˜์  ํ‘œํ˜„์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์‹ค์ˆ˜๋ฅผ ์ปดํ“จํ„ฐ(๋˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ชจ๋“  ํ•˜๋“œ์›จ์–ด)๋กœ ํ‘œํ˜„ํ•˜๋ ค๋ฉด, ์šฐ๋ฆฌ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ๋ฅผ ์ˆซ์ž ์–ด๋”˜๊ฐ€์— ๊ณ ์ •ํ•˜๋ฏ€๋กœ์จ ๊ณ ์ •์†Œ์ˆ˜์ ์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋–„ ์ด๋Ÿฌํ•œ ์ ˆ๋Œ€์ ์ธ ๊ด€์Šต์„ ๋”ฐ๋ฅผ ๊ฒ๋‹ˆ๋‹ค.

๊ฐœ๋…์ ์œผ๋กœ ๊ณ ์ •์†Œ์ˆ˜์ ์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ, ์šฐ๋ฆฌ๋Š” ๋‘๊ฐ€์ง€ ๋ณ€์ˆ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

  • ํ‘œํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ์ˆ˜์˜ ๊ฐ€๋กœ ๋„ˆ๋น„
  • ์ˆซ์ž ์ƒ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ์˜ ์œ„์น˜

์•ž์œผ๋กœ๋Š” fixed<w,b> ํ‘œํ˜„๋ฒ•์„ ์‚ฌ์šฉํ•  ๊ฑด๋ฐ์š”. w๋Š” ์ „์ฒด์ ์œผ๋กœ ์‚ฌ์šฉ๋œ ๋น„ํŠธ์˜ ์ˆ˜(์ˆ˜์˜ ๋„ˆ๋น„)์ด๊ณ  b ๋Š” ๊ฐ€์žฅ ์˜ํ–ฅ์ด ์ž‘์€ ๋น„ํŠธ๋กœ ๋ถ€ํ„ฐ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ์˜ ์œ„์น˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ fixed<8,3> ์€ 8๋น„ํŠธ๋กœ ๊ณ ์ •๋œ ์ˆ˜์ด๊ณ ์š”, ์˜ค๋ฅธ์ชฝ ์„ธ ๊ฐœ๊ฐ€ ๋ถ„์ˆ˜ ํŒŒํŠธ ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋น„ํŠธ ํŒจํ„ด์ธ๊ฑฐ์ฃ :

0 0 0 1 0 1 1 0

์•„๋ž˜์™€ ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค:

00010.110

= 1 * 2^1 + 1 * 2^-1 + 1 * 2^-2

= 2 + 0.5 + 0.25

= 2.75

์ปดํ“จํ„ฐ์—์„  ํ•˜๋‚˜์˜ ๋น„ํŠธ ํŒจํ„ด์ด ๋‹ค๋ฅธ ๊ฑธ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฑธ ๊ธฐ์–ตํ•˜์„ธ์š”. ๊ฐ™์€ ๋น„ํŠธ ํŒจํ„ด์ด๋”๋ผ๋„ fixed<8,5> ์ฒ˜๋Ÿผ ๋‹ค๋ฅธ ํƒ€์ž…์„ ์บ์ŠคํŒ…ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„๋  ๊ฒ๋‹ˆ๋‹ค:

000.10110

= 1 * 2^-1 + 1 * 2^-3 + 1 * 2^-4

= 0.5 + 0.125 + 0.0625

= 0.6875

์ด ๋น„ํŠธ ํŒจํ„ด์ด ์ •์ˆ˜๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค๋ฉด ์ด๋ ‡์ฃ :

10110

= 1 * 2^4 + 1 * 2^2 + 1 * 2^1

= 16 + 4 + 2

= 22

 

 

์Œ์ˆ˜

์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” ์–‘์ˆ˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ๋ฅผ ํ–ˆ๋Š”๋ฐ์š”. ์Œ์ˆ˜๋„ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๊ฒ ์ฃ ? ๊ทธ๋•Œ๋Š” ๊ณ ์ •์†Œ์ˆ˜์ ์„ ์–ด๋””์— ๋‘ฌ์•ผ ํ• ๊นŒ์š”?

์ปดํ“จํ„ฐ์—์„œ ์šฐ๋ฆฌ๋Š” ์Œ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด 2์˜ ๋ณด์ˆ˜๋ฅผ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. 2์˜ ๋ณด์ˆ˜ ์ˆซ์ž์˜ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋Š” ์–‘์ˆ˜๋‚˜ ์Œ์ˆ˜์˜ ๊ณ„์‚ฐ์ด ๊ฐ™๋‹ค๋Š” ๊ฒƒ์ด์ฃ . ๊ณ„์‚ฐ์—๋Š” ๋”ํ•˜๊ธฐ, ๋นผ๊ธฐ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋†€๋ž์ง„ ์•Š๊ฒ ์ง€๋งŒ ์‹œํ”„ํŒ…๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์–‘์ˆ˜์—์„œ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์ธ 2์˜ ๋ณด์ˆ˜๋ฅผ ์‚ฌ์ธ ์ต์Šคํ…์…˜(๋ฒˆ์—ญ์ž ์ฃผ: ๋ถ€ํ˜ธ ๋น„ํŠธ๋ฅผ ๊ณ ์ˆœ์œ„์˜ ๋ ˆ์ง€์Šคํ„ฐ์— ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ด ํ™•์žฅ์€ ๋ณดํ†ต 1 ๋˜๋Š” 2์˜ ๋ณด์ˆ˜ 2์ง„์ˆ˜๋กœ ์ˆ˜ํ–‰)๊ณผ ํ•จ๊ป˜ 1๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์˜ฎ๊ฒจ์„œ 2๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์–ด์š”.

์ด ๊ธ€์˜ ์‹œ์ž‘์—์„œ ๊ณ ์ •์†Œ์ˆ˜์  ์‹ค์ˆ˜๊ฐ€ ์ •์ˆ˜๋ฅผ ์‹œํ”„ํŒ… ํ–ˆ๋˜ ๊ฒƒ(๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ๋ฅผ 0์ด ์•„๋‹Œ ๊ณณ์— ์œ„์น˜ํ•˜๊ฒŒ ํ•œ ๊ฒƒ)์ด๋ผ ๋…ผ์˜ํ–ˆ๋˜ ๊ฒƒ์„ ๋– ์˜ฌ๋ ค ๋ณด์„ธ์š”. 2์˜ ๋ณด์ˆ˜ ์Œ์ˆ˜์—๋„ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ด ์ž‘์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์—ฐ๊ฒฐํ•˜๋ฉด, ์Œ์ˆ˜๊ฐ€ ๊ณ ์ •์†Œ์ˆ˜์ ์—์„œ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„๋˜๋Š” ์ง€ ๊นจ๋‹ฌ์„ ์ˆ˜ ์žˆ์–ด์š”. ๋ฐ”๋กœ 2์˜ ๋ณด์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฑฐ์ฃ .

์•„๋ž˜์˜ ์ˆ˜๋Š” 2์˜ ๋ณด์ˆ˜๋ฅผ 4๋น„ํŠธ๋กœ ํ‘œํ˜„ํ•œ ๊ฒ๋‹ˆ๋‹ค:

Bit Pattern Number
Represented (n)
n / 2
1 1 1 1 -1 -0.5
1 1 1 0 -2 -1
1 1 0 1 -3 -1.5
1 1 0 0 -4 -2
1 0 1 1 -5 -2.5
1 0 1 0 -6 -3
1 0 0 1 -7 -3.5
1 0 0 0 -8 -4
0 1 1 1 7 3.5
0 1 1 0 6 3
0 1 0 1 5 2.5
0 1 0 0 4 2
0 0 1 1 3 1.5
0 0 1 0 2 1
0 0 0 1 1 0.5
0 0 0 0 0 0

์ด ํ‘œ๋ฅผ ๋ณด๋ฉด -2.5๋ฅผ ๋น„ํŠธ ํŒจํ„ด์„ 1011์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋œ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ๊ฐ€ 1์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ€์ •๋งŒ ํ•œ๋‹ค๋ฉด ๋ง์ด๋‹ค.

 

 

๊ณ ์ •์†Œ์ˆ˜์  ์‹ค์ˆ˜ ํ‘œํ˜„์˜ ์žฅ๋‹จ์ 

์ด์ฏค์ด๋ฉด ๊ณ ์ •์†Œ์ˆ˜์  ์‹ค์ˆ˜๊ฐ€ ์ •์ˆ˜ ํ‘œํ˜„์— ๊ฐ€๊น๋‹ค๋Š” ๊ฑธ ์•Œ์•˜์„ ๊ฒ๋‹ˆ๋‹ค. ์ •์ˆ˜์™€ ๊ณ ์ •์†Œ์ˆ˜์  ์‹ค์ˆ˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ์˜ ์œ„์น˜์—์„œ๋งŒ ์ฐจ์ด๊ฐ€ ๋‚˜์š”. ์‚ฌ์‹ค ์ •์ˆ˜ ํ‘œํ˜„ ์ž์ฒด๋ฅผ ๊ณ ์ •์†Œ์ˆ˜์  ์‹ค์ˆ˜ ์ค‘ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ๊ฐ€ 0์— ์œ„์น˜ํ•œ 'ํŠน๋ณ„ํ•œ ์ผ€์ด์Šค'๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ๊ฒ ๋„ค์š”. ์ •์ˆ˜์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํ“จํ„ฐ์˜ ๋ชจ๋“  ์ˆ˜ํ•™ ์—ฐ์‚ฐ์€ ๊ณ ์ •์†Œ์ˆ˜์ ์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ณ ์ •์†Œ์ˆ˜์  ์—ฐ์‚ฐ์˜ ์žฅ์ ์€ ์ •์ˆ˜ ์—ฐ์‚ฐ์ด ์ปดํ“จํ„ฐ์—์„œ ๊ทธ๋ ‡๋“ฏ ์ง๊ด€์ ์ด๊ณ  ํšจ์œจ์ ์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ •์ˆ˜ ์—ฐ์‚ฐ์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ณ ์ •์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ํ•˜๋Š”๋ฐ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”. ๋‹ค๋ฅธ ๋ง๋กœ ํ•˜์ž๋ฉด ๊ณ ์ •์†Œ์ˆ˜์  ์—ฐ์‚ฐ์€ ์ปดํ“จํ„ฐ์—๊ฒ '๊ณต์งœ'์ธ ์…ˆ์ด์ฃ .

๊ณ ์ •์†Œ์ˆ˜์  ์‹ค์ˆ˜์˜ ๋‹จ์ ์€ ๋ถ€๋™์†Œ์ˆ˜์  ํ‘œํ˜„๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๊ฐ€ ์ž‘๊ณ  ์ •๋ฐ€๋„๋„ ๋–จ์–ด์ง„๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด fixed<8,1> ํ‘œํ˜„์—์„œ ์šฐ๋ฆฌ์˜ ๋ถ„์ˆ˜ ํŒŒํŠธ๋Š” 0.5๋งŒํผ๋งŒ ์ •ํ™•ํ•  ์ˆ˜ ์žˆ์–ด์š”. 0.75 ๊ฐ™์€ ์ˆ˜๋Š” ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์ฃ . fixed<8, 2>๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ธฐ๋Š” ํ•œ๋ฐ, ์ •์ˆ˜๋ถ€๋ฅผ ์žƒ๊ฒŒ ๋˜๊ฒ ์ฃ .

 

 

C์—์„œ ๊ณ ์ •์†Œ์ˆ˜์  ์‹ค์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

C๋Š” ๊ณ ์ •์†Œ์ˆ˜์  "ํƒ€์ž…"์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง„ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ณ ์ •์†Œ์ˆ˜์  ํ‘œํ˜„์˜ ๋ณธ๋ž˜ ํŠน์ง•์ƒ, ํ•„์š”ํ•˜์ง€๋„ ์•Š์•„์š”. ๊ณ ์ •์†Œ์ˆ˜์  ์‹ค์ˆ˜ ์—ฐ์‚ฐ์ด ์ •์ˆ˜์™€ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์„ ๋– ์˜ฌ๋ ค๋ณด๋ฉด, ๊ณก์ •์†Œ์ˆ˜์  ์—ฐ์‚ฐ์— ํƒ€์ž… int ๋ฅผ ๊ทธ๋Œ€๋กœ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด์— ํ‘œํ˜„ํ•  ๋•Œ๋‚˜ ๋‹ค๋ฅธ "ํƒ€์ž…"๊ณผ ์—ฐํ•œ์‚ด ๋•Œ (์˜ˆ๋ฅผ ๋“ค๋ฉด fixed<32.7> ์— int๋ฅผ ๋”ํ•  ๋•Œ) ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ์ธํŠธ์˜ ์œ„์น˜๋งŒ ๊ณ ๋ คํ•ด์ฃผ๋ฉฐ ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ฒฐ๋ก 

๊ณ ์ •์†Œ์ˆ˜์ ์€ ๋‹จ์ˆœํ•˜์ง€๋งŒ ์ปดํ“จํ„ฐ์—์„œ ๋ถ„์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ์•„์ฃผ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ์˜ ์ •์ˆ˜ ์—ฐ์‚ฐ ์„œํ‚ท์„ ๋ชจ๋‘ ์žฌ์‚ฌ์šฉํ•˜๋ฏ€๋กœ์จ, ๊ณ ์ •์†Œ์ˆ˜์ ์€ ๋ถ€๋™์†Œ์ˆ˜์  ์—ฐ์‚ฐ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค. ๊ฒŒ์ž„์ด๋‚˜ DSP ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ด์œ ์ฃ . ๋ฐ˜๋Œ€๋กœ ๋ถ€๋™์†Œ์ˆ˜์  ํ‘œํ˜„์ด ์ œ๊ณตํ•˜๋Š” ๋ฒ”์œ„์™€ ์ •๋ฐ€๋„๋Š” ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ํƒํ• ์ง€๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋‚˜ ์„œํ‚ท ๋””์ž์ด๋„ˆ๋กœ์„œ ๋‹น์‹ ์ด ์„ ํƒํ•ด์•ผ๊ฒ ์ฃ .

๋ฐ˜์‘ํ˜•