C/C++ ๋ฌธ๋ฒ์ ๋ ์ฝ๊ฒ ์ดํดํ๊ธฐ ์ํด ์ปดํจํฐ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋จํ๊ฒ ๋ค๋ฃน๋๋ค.
ํ๋ก๊ทธ๋๋ฐ์ด๋ผ๋ ๊ฑด ์ปดํจํฐ์๊ฒ ๋ช
๋ น์ ๋ด๋ฆฌ๋ ํ์์
๋๋ค. ๋ฐ๋ผ์ ํ๋ก๊ทธ๋๋ฐ์ ์ต์ํด์ง๊ธฐ ์ํด์ ๋จผ์ ์ปดํจํฐ๊ฐ ๋ญ๊ฐ ๊ณ ๋ฏผํด๋ณผ ํ์๊ฐ ์์ต๋๋ค. ์ปดํจํฐ๋ ์ ๋ง ๋ณต์กํ ์ฅ์น์ด์ง๋ง, ์ ๋ง ๋จ์ํ๊ฒ ๋ณด์๋ฉด ํฌ๊ฒ ๋ฉ๋ชจ๋ฆฌ์, ์ฐ์ฐ์ฅ์น ๋ ๊ฐ์ง๋ก ์ด๋ค์ง ๊ธฐ๊ณ๋ก ๋ณผ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ๋ ๋์๊ด์ ์ฑ
์ฅ์ฒ๋ผ ์๊ธด ์ฅ์น์
๋๋ค. ์ฑ
์ฅ์ ๊ฐ ์ธต์๋ ๋ฐ์์๋ถํฐ 0๋ฒ, 1๋ฒ, ... ์ด๋ฐ ์์ผ๋ก ๋ฒํธ๊ฐ ์ฐจ๋ก๋๋ก ๋ถ์ด์๊ณ , ์ซ์๋ฅผ ๋ฃ๊ฑฐ๋ ๊บผ๋ผ ์ ์์ต๋๋ค. ์ฐ์ฐ์ฅ์น๋ ์ฃผ์ด์ง ๋ช
๋ น์ ๋ฐ๋ผ ์ฃผ์ด์ง ์ฑ
์ฅ์์ ์ซ์๋ฅผ ๊บผ๋ด ์ฐ์ฐํ ํ, ๋ค์ ์ฃผ์ด์ง ์ฑ
์ฅ์ ์ซ์๋ฅผ ๋ฃ์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ๋ฐ๋ก ์ด ์ฐ์ฐ์ฅ์น์ ์ฃผ์ด์ง๋ ๋ช
๋ น์ด๋ค์
๋๋ค. ์์ ๊ทธ๋ฆผ์์ 2๋ฒ์์ 17, 3๋ฒ์์ 6์ด๋ ์ซ์๋ฅผ ๊บผ๋ด ๊ทธ ๋์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ 1๋ฒ์ ์ ์ฅํ๊ณ ์์ต๋๋ค. ์ด ์ํฉ์ ์์ฌ ์ฝ๋(pseudo-code)๋ก ์จ๋ณด์๋ฉด,
load 2
load 3
add
store 1
์ด๋ฐ ์์ผ๋ก ํํํ ์ ์๊ฒ ์ต๋๋ค.
์์ฌ ์ฝ๋๋ ์ค์ ๋ก ์ฌ์ฉํ ์ ์๋ ์ฝ๋๋ ์๋์ง๋ง ์ฌ๋๋ค์ ์ดํด๋ฅผ ๋๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฐ์ง ์ฝ๋์ ๋๋ค.
์ด ๊ตฌ์กฐ๋ ์ค์ ์ปดํจํฐ์ ๊ตฌ์กฐ์ ์ฐจ์ด๊ฐ ์๋๋ฐ์, ์์ผ๋ก C/C++์ ๊ณต๋ถํ๋ฉด์ ์ค์ ์ปดํจํฐ์ ๋น์ทํด์ง๋๋ก ํ์ฅํ ์์ ์ ๋๋ค.
์ปดํจํฐ์ ์ค์ ๋ก ์ ์ฅ๋๋ ๊ฒ์ด ์ซ์๋ผ๋ ๊ฒ์ ์์์ผ๋, ์ด๋ป๊ฒ ์ซ์๊ฐ ์ ์ฅ๋๋์ง๋ ์ ํ์๊ฐ ์์ต๋๋ค. ํํ ์ปดํจํฐ์ ๋ํด ์๊ฐํ๋ฉด ๋ฑ์ฅํ๋ ์ด๋ฏธ์ง ์ค ํ๋๊ฐ 010010101... ๊ฐ์ด ํํ๋๋ 2์ง์์ ๋๋ค. 2์ง์์ ๋ํด ์๊ธฐ ์ํด์ ๋จผ์ 10์ง์์ ๋ํด ์๊ฐํด๋ณผ ํ์๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 10์ง์ 17843์ ๋ค์๊ณผ ๊ฐ์ด ๋ถ์๋ฉ๋๋ค.
17843 = 1 ร 10โด + 7 ร 10ยณ + 8 ร 10ยฒ + 4 ร 10ยน + 3 ร 10โฐ
์ฌ๊ธฐ์ mโฟ์ m์ n์ ๊ณฑ์ ๋๋ค. ๋ง์ ์๋ฆฌ์ ์ซ์์ ๋ง์, ์ฒ์ ์๋ฆฌ์ ์ซ์์ ์ฒ์, ๋ฐฑ์ ์๋ฆฌ์ ์ซ์์ ๋ฐฑ์, ์ด๋ฐ ์์ผ๋ก ์ญ ๊ณฑํ ๋ค์ ์ ๋ถ ๋ํ๊ฒ ๊ทธ ์ซ์์ธ ๊ฒ์ ์ ์ ์์ต๋๋ค. 2์ง์๋ ์ฌ๊ธฐ์ 10 ๋์ ์ 2๋ฅผ ์ฌ์ฉํ ์ฒด๊ณ์ ๋๋ค. 10์ง์์์ ๊ฐ ์๋ฆฌ์ 0๋ถํฐ 9๊น์ง์ ์ ์๋ง ๋ค์ด๊ฐ ์ ์๋ ๊ฒ์ฒ๋ผ, 2์ง์๋ ๊ฐ ์๋ฆฌ์ 0๋๋ 1๋ง ๋ค์ด๊ฐ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 2์ง์ 10110(2)์ ๋ค์๊ณผ ๊ฐ์ด ๋ถ์๋ฉ๋๋ค.
10110(2) = 1 ร 2โด + 0 ร 2ยณ + 1 ร 2ยฒ + 1 ร 2ยน + 0 ร 2โฐ
์ฆ, 2์ง์ 10110(2)๋ 10์ง์ 22์ ๋๋ค. 2์ง์๋ ์ง๊ธ๊น์ง ์ฌ์ฉํด๋ณธ ์ ์๊ธฐ ๋๋ฌธ์, ์ต์ํ์ง ์์ผ์ค ๊ฑฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ค์ ์ซ์๋ค์ 10์ง์ ๋๋ 2์ง์๋ก ๋ณํํด๋ณด์๋ฉด์, ๊ฐ์ ์ตํ์๊ธธ ๋ฐ๋๋๋ค. 2์ง์์ ์ ์ฉ๋ ๋์ด์ฐ๊ธฐ๋ ๊ฐ๋ ์ฑ์ ์ํ ๊ฒ์ ๋๋ค. ๋ต์ ๋ฐ๋ก ๋ฐ์ ์์ต๋๋ค.
- 1 1101(2)
- 110 1111(2)
- 289
- 129
๋ต
- 29
- 111
- 1 0010 0001(2)
- 1000 0001(2)
2์ง์๋ฅผ 10์ง์๋ก ์ฝ๊ฒ ๋ณํํ๋ ๋ฐฉ๋ฒ์ด ์ฌ๋ฌ๊ฐ์ง ์์ต๋๋ค. ์ผ๋จ 2์ ๊ฑฐ๋ญ์ ๊ณฑ๋ค์ ์ธ์์ผ ํฉ๋๋ค.
2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, ...
์ฌ๋งํ ์ฌ๋๋ค๋ 1024 ์ด์์ ์ ์ ์ธ์๋๋ค. 2์ง์์ ์ต์ํด์ง ์ ๋๋ง ์ธ์์ ๋ ๊ด์ฐฎ์ต๋๋ค. 1๋ก๋ง ์ด๋ฃจ์ด์ง 2์ง์์ 10์ง์ ๋ณํ ๊ฒฐ๊ณผ๋ ์ฝ๊ฒ ๊ตฌํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด 111(2)์ ๊ฒฝ์ฐ 1000(2)์์ 1๋ง ๋นผ๋ฉด ๋ฉ๋๋ค. ์ฆ, 111(2)๋ 1000(2)์ ๋ณํ ๊ฒฐ๊ณผ์ธ 8์์ 1์ ๋บ 7์ ๋๋ค. ์ด๋ฐ ์์ผ๋ก ๊ณ์ฐํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
11(2) = 3
111(2) = 7
1111(2) = 15
11111(2) = 31
...
๊ทธ๋ผ ์ด์ ๊ณฑ์ ์ ํ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฒซ๋ฒ์งธ ๋ฌธ์ ์ 11101(2)๋ 111(2) * 100(2) + 1(2)๋ก ๋ถํดํ ์ ์์ต๋๋ค. ์ฆ, 7 ร 4 + 1 = 29์ ๋๋ค. ์ด๋ ๊ฒ ๋ณต์กํ 2์ง์๋ ๋น ๋ฅด๊ฒ 10์ง์๋ก ๋ณํํ ์ ์์ต๋๋ค.
2์ง์ ๊ณ์ฐ์ด ์ด๋ ค์ฐ์๋ค๋ฉด, ์๋์ฐ์ ๊ธฐ๋ณธ ๊ณ์ฐ๊ธฐ ์ฑ์ ํ๋ก๊ทธ๋๋จธ์ฉ ๊ณ์ฐ๊ธฐ ๊ธฐ๋ฅ์ ํ์ฉํ์ค ์ ์์ต๋๋ค. 2์ง์ ๋ฟ๋ง ์๋๋ผ ๋ฐ์์ ์ค๋ช ํ 8์ง์์ 16์ง์ ๋ณํ๋ ์ง์ํฉ๋๋ค.
์ปดํจํฐ๋ ์ ์ํ๋ก๋ก ์ด๋ฃจ์ด์ง ์ฅ์น์ ๋๋ค. ์ ์์ ์ฌ๋ฌ ์์ธ์ ๋ฐ๋ผ ์ ๋ณํ๊ธฐ ๋๋ฌธ์, ์ปดํจํฐ๋ฅผ ๋ง๋๋ ์ฌ๋๋ค์ ์ ์์ ์ฌ๋ฌ ๊ฐ๋ก ๋๋์ด 0๋ถํฐ 9๋ก ๊ฐ์ฃผํ๊ธฐ ๋ณด๋ค๋, ์ ์์ด ์ถฉ๋ถํ ์์ผ๋ฉด 0, ์ถฉ๋ถํ ํฌ๋ฉด 1๋ก ์๊ฐํ๊ธฐ๋ก ํ๊ณ 2์ง์๋ฅผ ํ์ฉํ์์ต๋๋ค. ์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ฆฝํ๋กญ์ด๋ผ๊ณ ํ๋, 0 ๋๋ 1์ ์ ์ฅํ ์ ์๋ ํ๋ก ์์ต๊ฐ๋ก ์ด๋ฃจ์ด์ ธ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐ์ฐ์ฅ์น๋ 2์ง์ ์ซ์๋ฅผ ๋ํ๊ณ , ๋นผ๊ณ , ๊ณฑํ๊ณ , ๋๋๋ ํ๋ก๋ก ์ด๋ฃจ์ด์ ธ์์ต๋๋ค. ์ปดํจํฐ๊ฐ ์ค์๋ฅผ ๋ค๋ฃฐ ๋๋ 2์ง์๋ฅผ ํ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, 10์ง์ ์์ 2.57์
2.57 = 2 ร 10โฐ + 5 รท 10ยน + 7 รท 10ยฒ
๋ก ๋ถ์๋ ์ ์๋๋ฐ์, ๋ง์ฐฌ๊ฐ์ง๋ก 1.11011(2)๊ฐ์ 2์ง์ ์์๋ฅผ ์๊ฐํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ์ปดํจํฐ์ ๋ชจ๋ ์์ ์ 2์ง์๋ก ๋ณํ๋์ด ์ฒ๋ฆฌ๋ฉ๋๋ค.
2์ง์๋ ์ปดํจํฐ๊ฐ ์ค์ ๋ก ์ซ์๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๊น์ง๋ง, ์ซ์๊ฐ ์กฐ๊ธ๋ง ์ปค์ ธ๋ ๊ธธ์ด๊ฐ ํฌ๊ฒ ์ฆ๊ฐํ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, 8์ง์์ 16์ง์๋ฅผ ํผ์ฉํด์ ์ฌ์ฉํฉ๋๋ค. ๋ณดํต 16์ง์๊ฐ 8์ง์๋ณด๋ค ํจ์ฌ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค. 8์ง์์ 16์ง์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ ์๋ฆฌ๊ฐ 8๊ณผ 16์ ๊ฑฐ๋ญ์ ๊ณฑ์ด๊ณ , ๊ฐ ์๋ฆฌ์ ๋ค์ด๊ฐ ์ ์๋ ์ซ์๊ฐ 0์์ 7 ๋๋ 0์์ 15๋ก ์ ํ๋์ด์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ, ํ ์๋ฆฌ์ 10๋ถํฐ 15๋ฅผ ์ ๋ ๊ฑด ํ๋ญ๋๋ค. 115(16)๋ผ๋ ์ซ์๊ฐ 16์ ์๋ฆฌ์ 11์ด ๋ค์ด๊ฐ๊ณ 1์ ์๋ฆฌ์ 5๊ฐ ๋ค์ด๊ฐ๊ฑด์ง, 16์ ์๋ฆฌ์ 1์ด ๋ค์ด๊ฐ๊ณ 1์ ์๋ฆฌ์ 15๊ฐ ๋ค์ด๊ฐ๊ฑด์ง, ์๋๋ฉด ์ธ์๋ฆฌ 16์ง์์ธ์ง ์ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๊ทธ๋์ 16์ง์์์ 10๋ถํฐ 15๋์ A์์ F๋ฅผ ํ์ฉํฉ๋๋ค. 1 ร 16 + 15๋ฅผ ํํํ ๋ 1F(16)๋ก, 11 ร 16 + 5๋ฅผ ํํํ ๋๋ B5(16)๋ก ์๋๋ค. 8์ง์์ 16์ง์๋ ํฐ ์ซ์๋ ์งง๊ฒ ์ธ ์ ์๋ค๋ ์ฅ์ ์ธ์๋, 2์ง์๋ก ์๋ก ๋ณํํ๊ธฐ ์ฝ๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. ์์ 2์ง์ ๋ฌธ์ ๋ค์ ์์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
- 11101(2) = 29
8์ง์:
11 101
3 5 -> 35(8)
16์ง์:
1 1101
1 D -> 1D(16)
- 1101111(2) = 111
8์ง์:
1 101 111
1 5 7 -> 157(8)
16์ง์:
110 1111
6 F -> 6F(16)
์ด๋ ๊ฒ ์ธ์๋ฆฌ ๋๋ ๋ค์๋ฆฌ ์ฉ ๋๋๊ฑธ๋ก ์ฝ๊ฒ 2์ง์๋ฅผ 8์ง์๋ 16์ง์๋ก ๋ณํํ ์ ์๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. 2์ฅ์ ์ฝ๋ ๋์ Visual Studio์ ์ค์น๊ฐ ๋๋ฌ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ค์ ์ฅ์ ์ฝ์ด์ฃผ์ธ์.

