์ด ๊ณ์ฐ๊ธฐ๋ก ํ ์ ์๋ ์ผ
์ด ๋๊ตฌ๋ ๋ ์์ด ์๋ ์ ์ ์ฌ์ด์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋นํธ ๋ ผ๋ฆฌ ์ฐ์ฐ ์ธ ๊ฐ์ง, ์ฆ AND, OR, XOR๋ฅผ ํ ๋ฒ์ ๊ณ์ฐํฉ๋๋ค. ๊ฐ ํผ์ฐ์ฐ์๋ 10์ง์(base 10), 16์ง์(base 16), 8์ง์(base 8), 6์ง์(base 6), 2์ง์(base 2) ์ค ์ด๋ ์ง๋ฒ์ผ๋ก๋ ์ ๋ ฅํ ์ ์์ต๋๋ค. ์ฐ์ฐ ๊ฒฐ๊ณผ๋ ์ด ๋ค์ฏ ๊ฐ์ง ์ง๋ฒ์ผ๋ก ๋ชจ๋ ํ์๋๋ฏ๋ก, ์์ ์ ํ์ํ ํํ๋ก ๊ณง๋ฐ๋ก ์ฝ์ ์ ์์ต๋๋ค. ๋ชจ๋ ๊ฐ์ ๋ถํธ ์๋(unsigned) ์ ์๋ก ์ฒ๋ฆฌ๋๋ฉฐ 0๋ถํฐ \(2^{64} - 1\)๊น์ง์ ์ ์ฒด ๋ฒ์๋ฅผ ์ง์ํฉ๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
์ฒซ ๋ฒ์งธ ์ซ์๋ฅผ x ์ ๋ ฅ๋์ ์ ๊ณ , ๊ทธ ์ซ์๊ฐ ์ด๋ค ์ง๋ฒ์ผ๋ก ์ ํ ์๋์ง ์ ํํฉ๋๋ค. ๋ ๋ฒ์งธ ์ซ์ y๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ ฅํฉ๋๋ค. ์ง๋ฒ ์ ํ์ ์ ๋ ฅํ ํ ์คํธ๋ฅผ ์ด๋ป๊ฒ ํด์ํ ์ง์๋ง ์ํฅ์ ์ค ๋ฟ, ์ค์ ์ฐ์ฐ์ ํญ์ ๊ทธ ๊ฐ์ด ๊ฐ๋ฆฌํค๋ ์ ์ ์์ฒด์ ๋ํด ์ํ๋ฉ๋๋ค. ๊ฒฐ๊ณผ ํ์๋ AND, OR, XOR ๊ฐ์ด ๊ฐ๊ฐ 10์ง์ยท16์ง์ยท8์ง์ยท6์ง์ยท2์ง์ ํ์ผ๋ก ์ ๋ฆฌ๋์ด ๋ํ๋ฉ๋๋ค.
๊ณต์ ์ดํดํ๊ธฐ
๋นํธ ์ฐ์ฐ์ ๊ฐ ์ ์์ 2์ง ํํ์ ํ ๋นํธ ์๋ฆฌ์ฉ ์ฐจ๋ก๋ก ๋น๊ตํฉ๋๋ค. AND๋ ๋ ์ ๋ ฅ ๋นํธ๊ฐ ๋ชจ๋ 1์ผ ๋๋ง ๊ฒฐ๊ณผ ๋นํธ๋ฅผ 1๋ก ๋ง๋ญ๋๋ค. OR๋ ๋ ์ ๋ ฅ ๋นํธ ์ค ์ ์ด๋ ํ๋๊ฐ 1์ด๋ฉด ๊ฒฐ๊ณผ ๋นํธ๋ฅผ 1๋ก ๋ง๋ญ๋๋ค. XOR(๋ฐฐํ์ OR)๋ ๋ ์ ๋ ฅ ๋นํธ ์ค ์ ํํ ํ๋๋ง 1์ผ ๋ ๊ฒฐ๊ณผ ๋นํธ๋ฅผ 1๋ก ๋ง๋ญ๋๋ค. ๊ฐ์ ๊ฐ์ XORํ๋ฉด 0์ด ๋๊ธฐ ๋๋ฌธ์, XOR๋ ํจ๋ฆฌํฐ ๊ฒ์ฌ๋ ์ฒดํฌ์ฌ ๊ณ์ฐ์ ํนํ ์ ๋ง์ต๋๋ค.
$$\begin{gathered} X = \text{parse}\!\left(\text{x},\ \text{base}_x\right), \quad Y = \text{parse}\!\left(\text{y},\ \text{base}_y\right) \\[1.2em] \text{AND} = X \mathbin{\&} Y, \quad \text{OR} = X \mid Y, \quad \text{XOR} = X \oplus Y \end{gathered}$$
์์ ๋ก ์ดํด๋ณด๊ธฐ
\(x = 115\), \(y = 234\)(๋ ๋ค 10์ง์)๋ฅผ ์๋ก ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. 2์ง์๋ก ๋ํ๋ด๋ฉด \(115 = 0111\,0011\), \(234 = 1110\,1010\)์ ๋๋ค. AND๋ $$0110\,0010 = 98 = \text{16์ง์ } 62 = \text{8์ง์ } 142 = \text{6์ง์ } 242 = \text{2์ง์ } 1100010$$์ด ๋ฉ๋๋ค. OR๋ $$1111\,1011 = 251 = \text{16์ง์ } fb = \text{8์ง์ } 373 = \text{6์ง์ } 1055$$์ ๋๋ค. XOR๋ $$1001\,1001 = 153 = \text{16์ง์ } 99 = \text{8์ง์ } 231 = \text{6์ง์ } 413 = \text{2์ง์ } 10011001$$์ ๋๋ค.
๋นํธ ๋จ์ ์ฐ์ฐ ์ง๋ฆฌํ
๋นํธ ๋จ์ ์ฐ์ฐ์ ๋ ๋นํธ ์์ ๊ฐ ๋นํธ์ ๋ ๋ฆฝ์ ์ผ๋ก ์์ฉํฉ๋๋ค. ์๋ ํ๋ ๋ ์ ๋ ฅ ๋นํธ \(A\)์ \(B\)์ ๋ชจ๋ ๊ฐ๋ฅํ ์กฐํฉ๊ณผ AND (\(\&\)), OR (\(\mid\)) ๋ฐ XOR (\(\oplus\))์ ๊ฒฐ๊ณผ ์ถ๋ ฅ ๋นํธ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
| A | B | A AND B (\(A \mathbin{\&} B\)) | A OR B (\(A \mid B\)) | A XOR B (\(A \oplus B\)) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
๋ค์ ๋งํด, AND๋ ๋ ๋ค ๋นํธ๊ฐ 1์ผ ๋๋ง 1์ ๋ฐํํ๊ณ , OR์ ์ ์ด๋ ํ๋์ ๋นํธ๊ฐ 1์ผ ๋ 1์ ๋ฐํํ๋ฉฐ, XOR์ ๋นํธ๊ฐ ๋ค๋ฅผ ๋ 1์ ๋ฐํํฉ๋๋ค. ๋ ๊ฐ์ ๋ค์ค ๋นํธ ์ ์๋ฅผ ๊ฒฐํฉํ ๋, ์ฐ์ฐ์ ์ ๋ ฌ๋ ๊ฐ ๋นํธ ์์น์ ๋ณ๋๋ก ์ ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด \(12 = 1100_2\)์ \(10 = 1010_2\)๋ฅผ ๋นํธ ๋จ์๋ก ๊ฒฐํฉํ๋ฉด AND \(=1000_2 = 8\), OR \(=1110_2 = 14\), XOR \(=0110_2 = 6\)์ ๋๋ค.
์ง๋ฒ ์ซ์ ๋ณํํ
AND, OR ๋๋ XOR์ ๊ณ์ฐํ๊ธฐ ์ ์, ํผ์ฐ์ฐ์๊ฐ ์ฌ๋ฐ๋ฅธ ์ง๋ฒ์ผ๋ก ์ ๋ ฅ๋์๋์ง ํ์ธํ์ธ์. ์ผํฐ๋ฆฌ ์ง๋ฒ์ 6์ง๋ฒ(์ซ์ 0โ5)์ด๊ณ , ํ์ง๋ฒ์ 8์ง๋ฒ(์ซ์ 0โ7)์ด๋ฉฐ, ์ญ์ก์ง๋ฒ์ 16์ง๋ฒ(์ซ์ 0โ9 ๋ค์ AโF)์ ๋๋ค. ์๋ ํ๋ ์ง์๋๋ 5๊ฐ์ง ์ง๋ฒ ๋ชจ๋์์ 10์ง์ 0โ16์ ๋์ดํฉ๋๋ค.
| ์ญ์ง๋ฒ (10) | ์ญ์ก์ง๋ฒ (16) | ํ์ง๋ฒ (8) | ์ผ๋๋ฆฌ (6) | ์ด์ง๋ฒ (2) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 | 10 |
| 3 | 3 | 3 | 3 | 11 |
| 4 | 4 | 4 | 4 | 100 |
| 5 | 5 | 5 | 5 | 101 |
| 6 | 6 | 6 | 10 | 110 |
| 7 | 7 | 7 | 11 | 111 |
| 8 | 8 | 10 | 12 | 1000 |
| 9 | 9 | 11 | 13 | 1001 |
| 10 | A | 12 | 14 | 1010 |
| 11 | B | 13 | 15 | 1011 |
| 12 | C | 14 | 20 | 1100 |
| 13 | D | 15 | 21 | 1101 |
| 14 | E | 16 | 22 | 1110 |
| 15 | F | 17 | 23 | 1111 |
| 16 | 10 | 20 | 24 | 10000 |
์ด์ง 1100 ๋ณํ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์ง๋ฒ์ ๋จ์ผ ๊ฐ์ ํ์ธํ ์ ์์ผ๋ฉฐ, ์ด๋ 10์ง์ 12๋ฅผ ๋ฐํํฉ๋๋ค. ์ด์ง 1100
์ ์ ๋ฐ ์ฉ์ด์ง
- ๋นํธ
- 0 ๋๋ 1์ ๊ฐ์ ๊ฐ๋ ๋์งํธ ์ ๋ณด์ ๊ฐ์ฅ ์์ ๋จ์์ ๋๋ค. ์ด ๊ณ์ฐ๊ธฐ์ ๋ชจ๋ ์ ์๋ ๋นํธ์ ์ํ์ค๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
- ๋นํธ ๋จ์ ์ฐ์ฐ
- ๋ ํผ์ฐ์ฐ์์ ๊ฐ ํด๋น ๋นํธ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ ์ฉ๋๋ ์ฐ์ฐ์ ๋๋ค. AND, OR ๋ฐ XOR์ ์ฌ๊ธฐ์ ๊ณ์ฐ๋๋ ์ธ ๊ฐ์ง ๊ฒฐํฉ ์ฐ์ฐ์ ๋๋ค.
- ์ง๋ฒ (๊ธฐ์)
- ์์น ๊ธฐ์๋ฒ์ด ์ฌ์ฉํ๋ ์๋ก ๋ค๋ฅธ ์ซ์์ ๊ฐ์์ ๋๋ค. ์ญ์ง๋ฒ์ 10์ง๋ฒ, ์ด์ง๋ฒ์ 2์ง๋ฒ, ํ์ง๋ฒ์ 8์ง๋ฒ, ์ผ๋๋ฆฌ ์ง๋ฒ์ 6์ง๋ฒ, ์ญ์ก์ง๋ฒ์ 16์ง๋ฒ์ ๋๋ค. ๊ฐ ์ซ์ ์์น๋ ์ง๋ฒ์ ๊ฑฐ๋ญ์ ๊ณฑ์ ๋ํ๋ ๋๋ค.
- ๋ถํธ ์๋ ์ ์
- ๋ถํธ ๋นํธ๊ฐ ์๋ ์์ด ์๋ ์ ์์ ๋๋ค. ๋ชจ๋ ๋นํธ๊ฐ ํฌ๊ธฐ์ ๊ธฐ์ฌํฉ๋๋ค. ์ด ๋๊ตฌ๋ ๋ถํธ ์๋ ๊ฐ๋ง ํ์ฉํฉ๋๋ค.
- ์ผ๋๋ฆฌ
- ์ซ์ 0โ5๋ฅผ ์ฌ์ฉํ๋ 6์ง ๊ธฐ์๋ฒ์ ๋๋ค. ์๋ฆฌ์ ๊ฐ์ 6์ ๊ฑฐ๋ญ์ ๊ณฑ์ ๋๋ค. ์: \(24_6 = 2\times6 + 4 = 16\).
- ์ญ์ก์ง๋ฒ
- ์ซ์ 0โ9์ ๋ฌธ์ AโF(A=10 โฆ F=15)๋ฅผ ์ฌ์ฉํ๋ 16์ง ๊ธฐ์๋ฒ์ ๋๋ค. ๊ฐ ์ญ์ก์ง ์ซ์๋ ์ ํํ 4๊ฐ์ ์ด์ง ๋นํธ๋ก ๊น๋ํ๊ฒ ๋งคํ๋ฉ๋๋ค.
- ํ์ง๋ฒ
- ์ซ์ 0โ7์ ์ฌ์ฉํ๋ 8์ง ๊ธฐ์๋ฒ์ ๋๋ค. ๊ฐ ํ์ง ์ซ์๋ ์ ํํ 3๊ฐ์ ์ด์ง ๋นํธ๋ก ๋งคํ๋ฉ๋๋ค.
- ๋ง์คํฌ
- ํน์ ๋นํธ๋ฅผ ์ ํ, ์ค์ ๋๋ ์ง์ฐ๊ธฐ ์ํด ๋นํธ ๋จ์ ์ฐ์ฐ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ ์์ ๊ฐ์ ๋๋ค. ์: \(0\text{F}_{16}\)์ผ๋ก AND ์ฐ์ฐ์ ํ๋ฉด ํ์ 4๋นํธ๋ง ์ ์ง๋ฉ๋๋ค.
- ํจ๋ฆฌํฐ
- ๊ฐ์ 1-๋นํธ ๊ฐ์๊ฐ ์ง์์ธ์ง ํ์์ธ์ง ์ฌ๋ถ์ ๋๋ค. XOR์ ํจ๋ฆฌํฐ ๊ฒ์ฌ์ ๊ธฐ์ด์ ๋๋ค: ๋ชจ๋ ๋นํธ์ XOR์ ํ์ ํจ๋ฆฌํฐ์ ๊ฒฝ์ฐ 1์ด๊ณ ์ง์ ํจ๋ฆฌํฐ์ ๊ฒฝ์ฐ 0์ ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์์๋ ์ ๋ ฅํ ์ ์๋์? ์๋์. ์ ๋ ฅ๊ฐ์ ์์ด ์๋ ๋ถํธ ์๋ ์ ์๋ง ๊ฐ๋ฅํ๋ฉฐ, 2์ ๋ณด์ ๋ฐฉ์์ ๋ถํธ ์ฒ๋ฆฌ๋ ์ง์ํ์ง ์์ต๋๋ค.
์๋ชป๋ ์๋ฆฟ์๋ฅผ ์ ๋ ฅํ๋ฉด ์ด๋ป๊ฒ ๋๋์? ์ ํํ ์ง๋ฒ์์ ํ์ฉ๋์ง ์๋ ์๋ฆฟ์(์: 8์ง์์์ "8")๋ ๋ฌด์๋๊ฑฐ๋ 0์ผ๋ก ์ฒ๋ฆฌ๋๋ฏ๋ก, ์ง๋ฒ ์ ํ์ด ๋ง๋์ง ๊ผญ ํ์ธํ์ธ์.
์ฒดํฌ์ฌ์ ์ XOR๋ฅผ ์ฐ๋์? ์ฌ๋ฌ ๋ฐ์ดํธ๋ฅผ ์ฐจ๋ก๋ก XORํ ๋ค ๊ฐ์ ๋ฐ์ดํธ๋ค์ ๋ค์ XORํ๋ฉด 0์ผ๋ก ๋์์ค๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋๋ถ์ XOR๋ 1๋นํธ ๋ณํ๋ฅผ ๊ฐ์งํ๊ณ ํจ๋ฆฌํฐ๋ฅผ ๊ณ์ฐํ๋ ๊ฐ๋จํ๋ฉด์๋ ๋๋๋ฆด ์ ์๋ ๋ฐฉ๋ฒ์ด ๋ฉ๋๋ค.