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\).
์์ ๋ก ํ์ด ๋ณด๊ธฐ
โ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\)๊ฐ ๋์ด ๋ณํ์ด ์ ํํจ์ ํ์ธํ ์ ์์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ซ์๊ฐ ๋นํธ ํญ๋ณด๋ค ํฌ๋ฉด ์ด๋ป๊ฒ ๋๋์? ์ค์ ํ๋์จ์ด์ ๋๊ฐ์ด \(2^n\)์ ๊ธฐ์ค์ผ๋ก ํ ๋ฐํด ๋๋ฉฐ(์ค๋ฒํ๋ก) ์๋ฆฝ๋๋ค. ์๋ฅผ ๋ค์ด 8๋นํธ์์ 300์ \(300 - 256 = 44\)๊ฐ ๋ฉ๋๋ค.
๋ถํธ ์๋ ๊ฐ๊ณผ ๋ถํธ ์๋ ๊ฐ์ด ๋ค๋ฅธ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์? ๋๊ฐ์ ๋นํธ๋ผ๋ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ฝ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ถํธ ์๋ ํด์์ ๋ชจ๋ ๋นํธ๋ฅผ ์์๋ก ์ฝ๊ณ , ๋ถํธ ์๋ ํด์์ ์ต์์ ๋นํธ๋ฅผ ์์ ๊ฐ์ค์น๋ก ์ทจ๊ธํฉ๋๋ค.
64๋นํธ๋ ์ง์ํ๋์? ๊ฒฐ๊ณผ๋ฅผ ์์ ํ ์ ๋ฐ๋ ๋ฒ์ ์์ ์ ์งํ๊ธฐ ์ํด ์ด ๊ณ์ฐ๊ธฐ๋ ํํ ์ฐ์ด๋ ์ต๋ 32๋นํธ๊น์ง ์ง์ํฉ๋๋ค.