MCP๋กœ ์—ฐ๊ฒฐ โ†’

๊ณ„์‚ฐ ์ž…๋ ฅ

๊ณต์‹

๊ด‘๊ณ 

๊ฒฐ๊ณผ

Two's Complement Binary (8-bit)
11111011
2์˜ ๋ณด์ˆ˜ ํ‘œํ˜„
๋ถ€ํ˜ธ ์—†๋Š” ๊ฐ’ 251
๋ถ€ํ˜ธ ์žˆ๋Š” ๊ฐ’ -5
๋น„ํŠธ ํญ 8๋น„ํŠธ

2์˜ ๋ณด์ˆ˜ ๊ณ„์‚ฐ๊ธฐ๋ž€?

2์˜ ๋ณด์ˆ˜๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ๋ถ€ํ˜ธ ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ํ‘œ์ค€ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ๊ณ„์‚ฐ๊ธฐ๋Š” ์ž„์˜์˜ 10์ง„์ˆ˜๋ฅผ ์„ ํƒํ•œ ๋น„ํŠธ ํญ(4, 8, 16, 32๋น„ํŠธ)์— ๋งž์ถฐ 2์˜ ๋ณด์ˆ˜ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ํ•ด๋‹น ๋น„ํŠธ ํŒจํ„ด์„ ๋ถ€ํ˜ธ ์—†๋Š” ๊ฐ’(unsigned)๊ณผ ๋ถ€ํ˜ธ ์žˆ๋Š” ๊ฐ’(signed) ๋‘ ๊ฐ€์ง€๋กœ ํ•จ๊ป˜ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

์–‘์ˆ˜๋“  ์Œ์ˆ˜๋“  10์ง„์ˆ˜๋ฅผ ์ž…๋ ฅํ•œ ๋’ค ๋น„ํŠธ ํญ์„ ์„ ํƒํ•˜์„ธ์š”. ๊ณ„์‚ฐ๊ธฐ๋Š” ์ž…๋ ฅ๊ฐ’์„ \(2^n\)์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋กœ ์ค„์—ฌ, CPU๊ฐ€ ์‹ค์ œ๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋น„ํŠธ ํŒจํ„ด์„ ๋งŒ๋“ค์–ด ๋ƒ…๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ™์€ ํŒจํ„ด์ด ๋ถ€ํ˜ธ ์žˆ๋Š” ๊ฐ’์œผ๋กœ๋Š” ์–ผ๋งˆ๋กœ ํ•ด์„๋˜๋Š”์ง€๋„ ์•Œ๋ ค ์ฃผ๋ฏ€๋กœ, ๋ณ€ํ™˜์ด ์ œ๋Œ€๋กœ ๋๋Š”์ง€(์™•๋ณต ๋ณ€ํ™˜)๋ฅผ ๋ฐ”๋กœ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณต์‹ ์ž์„ธํžˆ ๋ณด๊ธฐ

n๋น„ํŠธ ํ•„๋“œ์—์„œ ๋ถ€ํ˜ธ ์—†๋Š” ํ‘œํ˜„์€ $$u = ((x \bmod 2^n) + 2^n) \bmod 2^n$$ ์œผ๋กœ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹์€ ์Œ์ˆ˜๋ฅผ ํ•œ ๋ฐ”ํ€ด ๋Œ๋ ค ์–‘์ˆ˜ ๋ฒ”์œ„๋กœ ์˜ฎ๊ฒจ ์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 8๋น„ํŠธ์—์„œ โˆ’5๋Š” \(256 - 5 = 251\)์ด ๋˜๊ณ , ์ด๋ฅผ 2์ง„์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด 11111011์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๋น„ํŠธ ํŒจํ„ด์„ ๋ถ€ํ˜ธ ์žˆ๋Š” ๊ฐ’์œผ๋กœ ํ•ด์„ํ•˜๋ ค๋ฉด ์ตœ์ƒ์œ„ ๋น„ํŠธ(MSB)๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. MSB๊ฐ€ 1์ด๋ฉด(์ฆ‰ \(u \geq 2^{n-1}\)) ๊ฐ’์€ \(u - 2^n\)์ด๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ทธ๋ƒฅ \(u\) ์ž…๋‹ˆ๋‹ค. ์Œ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ๋ฐ˜์ „ํ•œ ๋’ค 1์„ ๋”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค: \(\sim x + 1\).

Number line showing unsigned values wrapping into signed positive and negative ranges
Values at or above 2^(n-1) wrap to negative; the upper unsigned half maps to negative signed numbers.

์˜ˆ์ œ๋กœ ํ’€์–ด ๋ณด๊ธฐ

โˆ’5๋ฅผ 8๋น„ํŠธ 2์˜ ๋ณด์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ด ๋ด…์‹œ๋‹ค. 1๋‹จ๊ณ„: \(2^8 = 256\). 2๋‹จ๊ณ„: $$u = ((-5 \bmod 256) + 256) \bmod 256 = 251.$$ 3๋‹จ๊ณ„: 251์„ 2์ง„์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด 11111011์ž…๋‹ˆ๋‹ค. MSB๊ฐ€ 1์ด๋ฏ€๋กœ ๋ถ€ํ˜ธ ์žˆ๋Š” ๊ฐ’์€ \(251 - 256 = -5\)๊ฐ€ ๋˜์–ด ๋ณ€ํ™˜์ด ์ •ํ™•ํ•จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Step diagram converting a negative decimal to two's complement binary
Two's complement of a negative value: invert the bits of the magnitude, then add one.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

์ˆซ์ž๊ฐ€ ๋น„ํŠธ ํญ๋ณด๋‹ค ํฌ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? ์‹ค์ œ ํ•˜๋“œ์›จ์–ด์™€ ๋˜‘๊ฐ™์ด \(2^n\)์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ ๋ฐ”ํ€ด ๋Œ๋ฉฐ(์˜ค๋ฒ„ํ”Œ๋กœ) ์ž˜๋ฆฝ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 8๋น„ํŠธ์—์„œ 300์€ \(300 - 256 = 44\)๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋ถ€ํ˜ธ ์—†๋Š” ๊ฐ’๊ณผ ๋ถ€ํ˜ธ ์žˆ๋Š” ๊ฐ’์ด ๋‹ค๋ฅธ ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ๋˜‘๊ฐ™์€ ๋น„ํŠธ๋ผ๋„ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ถ€ํ˜ธ ์—†๋Š” ํ•ด์„์€ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ์–‘์ˆ˜๋กœ ์ฝ๊ณ , ๋ถ€ํ˜ธ ์žˆ๋Š” ํ•ด์„์€ ์ตœ์ƒ์œ„ ๋น„ํŠธ๋ฅผ ์Œ์ˆ˜ ๊ฐ€์ค‘์น˜๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

64๋น„ํŠธ๋„ ์ง€์›ํ•˜๋‚˜์š”? ๊ฒฐ๊ณผ๋ฅผ ์•ˆ์ „ํ•œ ์ •๋ฐ€๋„ ๋ฒ”์œ„ ์•ˆ์— ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ด ๊ณ„์‚ฐ๊ธฐ๋Š” ํ”ํžˆ ์“ฐ์ด๋Š” ์ตœ๋Œ€ 32๋น„ํŠธ๊นŒ์ง€ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์ข… ์—…๋ฐ์ดํŠธ: