2์ง์ ํ ์คํธ ๋ณํ๊ธฐ๋?
2์ง์ ํ ์คํธ ๋ณํ๊ธฐ๋ 0๊ณผ 1๋ก ์ด๋ฃจ์ด์ง 2์ง์ ์ฝ๋๋ฅผ, ์ฌ๋์ด ์ฝ์ ์ ์๋ ์๋ ๋ฌธ์๋ก ๋๋๋ ค ํด๋ ํ๋ ๋๊ตฌ์ ๋๋ค. ์ปดํจํฐ๋ ๋ชจ๋ ๋ฌธ์, ์ซ์, ๊ธฐํธ๋ฅผ ASCII ๊ฐ์ ๋ฌธ์ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ๋ฐ๋ผ 2์ง์๋ก ์ ์ฅํฉ๋๋ค. ์ด ๋๊ตฌ๋ ๊ทธ ๊ณผ์ ์ ๊ฑฐ๊พธ๋ก ๋๋ฆฝ๋๋ค. ์ ๋ ฅํ 2์ง์๋ฅผ ์ฝ์ด 8๋นํธ(1๋ฐ์ดํธ) ๋จ์๋ก ๋๋ ๋ค, ๊ฐ ๋ฐ์ดํธ๋ฅผ ํด๋นํ๋ ๋ฌธ์๋ก ๋ณํํด ์ค๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
๋ณํํ 2์ง์๋ฅผ ์
๋ ฅ๋์ ๋ถ์ฌ๋ฃ์ผ์ธ์. ๊ฐ 8๋นํธ ๊ทธ๋ฃน์ ๋์ด์ฐ๊ธฐ๋ ์ค๋ฐ๊ฟ์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค. ์๋ฅผ ๋ค์ด 01001000 01101001 ์ฒ๋ผ ์
๋ ฅํ๋ฉด ๋ฉ๋๋ค. 0๊ณผ 1์ด ์๋ ๋ฌธ์๋ ์๋์ผ๋ก ๋ฌด์๋๋ฏ๋ก, ์ค๊ฐ์ ๋ค์ด๊ฐ ๊ตฌ๋์ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋์ง๋ ์์ต๋๋ค. '๊ณ์ฐํ๊ธฐ' ๋ฒํผ์ ๋๋ฅด๋ฉด ํด๋
๋ ํ
์คํธ์ ๋ณํ๋ ๋ฌธ์ ์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ณํ ์๋ฆฌ
8์๋ฆฌ 2์ง์ ํ ๋ฌถ์์ด 1๋ฐ์ดํธ์ ๋๋ค. ์ด ๋ฐ์ดํธ๋ 2์ง๋ฒ ์ซ์๋ก ํด์๋๋๋ฐ, ๋งจ ์ค๋ฅธ์ชฝ ๋นํธ๋ถํฐ ์ฐจ๋ก๋ก 1, 2, 4, 8, 16, 32, 64, 128์ ๊ฐ์ ๊ฐ์ง๋๋ค. 1๋ก ์ผ์ง ๋นํธ์ ๊ฐ์ ๋ชจ๋ ๋ํ๋ฉด 0๋ถํฐ 255 ์ฌ์ด์ ๊ฐ์ด ๋์ต๋๋ค. ์ด ๊ฐ์ด ๊ณง ๋ฌธ์ ์ฝ๋์ด๋ฉฐ, ASCII/์ ๋์ฝ๋ ํ๋ฅผ ํตํด ์ถ๋ ฅ ๊ฐ๋ฅํ ๋ฌธ์๋ก ๋์๋ฉ๋๋ค. ์ด๋ ๊ฒ ๋ณํ๋ ๋ฌธ์๋ค์ ์์๋๋ก ์ด์ด ๋ถ์ด๋ฉด ์๋์ ๋ฉ์์ง๊ฐ ๋ณต์๋ฉ๋๋ค.
$$\text{Char} = \text{Chr}\!\left( \sum_{k=0}^{7} b_{7-k} \cdot 2^{\,k} \right), \qquad b_k \in \text{Binary (8-bit groups)}$$
์์ ๋ก ์ดํด๋ณด๊ธฐ
01001000 ์ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ์ผ์ง ๋นํธ์ ๊ฐ์ ๋ํ๋ฉด \(64 + 8 = 72\) ์
๋๋ค. ๋ฌธ์ ์ฝ๋ 72๋ ์ํ๋ฒณ "H"์ ํด๋นํฉ๋๋ค. ๋ค์ ๋ฌถ์์ธ 01101001 ์ \(64 + 32 + 8 + 1 = 105\) ์ด๊ณ , ์ด๋ "i"์
๋๋ค. ๋ ๋ฌธ์๋ฅผ ์ด์ด ๋ถ์ด๋ฉด ๊ฒฐ๊ณผ๋ "Hi"๊ฐ ๋ฉ๋๋ค.
ASCII ์ด์ง ์ฐธ๊ณ ํ
๊ฐ ์ธ์ ๊ฐ๋ฅ ๋ฌธ์๋ ASCII ํ์ค์ ์ญ์ง์ ์ฝ๋ ํฌ์ธํธ์ ๋งคํ๋๋ฉฐ, ์ด๋ 8๋นํธ ์ด์ง ๊ทธ๋ฃน(1๋ฐ์ดํธ)์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ์ด์ง์๋ฅผ ๋ค์ ํ
์คํธ๋ก ๋์ฝ๋ฉํ๋ ค๋ฉด ์ด์ง ๋ฌธ์์ด์ 8๋นํธ ๊ทธ๋ฃน์ผ๋ก ๋๋๊ณ , ๊ฐ ๊ทธ๋ฃน์ ์ญ์ง๊ฐ์ผ๋ก ๋ณํํ ํ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ผ๋ฉด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํธ 01000001์ ์ญ์ง์ 65์ ๊ฐ์ผ๋ฉฐ, ์ด๋ ๋ฌธ์ A์
๋๋ค.
๋๋ฌธ์(AโZ)
| ๋ฌธ์ | ์ญ์ง์ | ์ด์ง์ |
|---|---|---|
| A | 65 | 01000001 |
| B | 66 | 01000010 |
| C | 67 | 01000011 |
| D | 68 | 01000100 |
| E | 69 | 01000101 |
| F | 70 | 01000110 |
| G | 71 | 01000111 |
| H | 72 | 01001000 |
| I | 73 | 01001001 |
| J | 74 | 01001010 |
| K | 75 | 01001011 |
| L | 76 | 01001100 |
| M | 77 | 01001101 |
| N | 78 | 01001110 |
| O | 79 | 01001111 |
| P | 80 | 01010000 |
| Q | 81 | 01010001 |
| R | 82 | 01010010 |
| S | 83 | 01010011 |
| T | 84 | 01010100 |
| U | 85 | 01010101 |
| V | 86 | 01010110 |
| W | 87 | 01010111 |
| X | 88 | 01011000 |
| Y | 89 | 01011001 |
| Z | 90 | 01011010 |
์๋ฌธ์(aโz)
| ๋ฌธ์ | ์ญ์ง์ | ์ด์ง์ |
|---|---|---|
| a | 97 | 01100001 |
| b | 98 | 01100010 |
| c | 99 | 01100011 |
| d | 100 | 01100100 |
| e | 101 | 01100101 |
| f | 102 | 01100110 |
| g | 103 | 01100111 |
| h | 104 | 01101000 |
| i | 105 | 01101001 |
| j | 106 | 01101010 |
| k | 107 | 01101011 |
| l | 108 | 01101100 |
| m | 109 | 01101101 |
| n | 110 | 01101110 |
| o | 111 | 01101111 |
| p | 112 | 01110000 |
| q | 113 | 01110001 |
| r | 114 | 01110010 |
| s | 115 | 01110011 |
| t | 116 | 01110100 |
| u | 117 | 01110101 |
| v | 118 | 01110110 |
| w | 119 | 01110111 |
| x | 120 | 01111000 |
| y | 121 | 01111001 |
| z | 122 | 01111010 |
์ซ์(0โ9)
| ๋ฌธ์ | ์ญ์ง์ | ์ด์ง์ |
|---|---|---|
| 0 | 48 | 00110000 |
| 1 | 49 | 00110001 |
| 2 | 50 | 00110010 |
| 3 | 51 | 00110011 |
| 4 | 52 | 00110100 |
| 5 | 53 | 00110101 |
| 6 | 54 | 00110110 |
| 7 | 55 | 00110111 |
| 8 | 56 | 00111000 |
| 9 | 57 | 00111001 |
๊ณต๋ฐฑ ๋ฐ ์ผ๋ฐ ๊ตฌ๋์
| ๋ฌธ์ | ์ด๋ฆ | ์ญ์ง์ | ์ด์ง์ |
|---|---|---|---|
| (๊ณต๋ฐฑ) | ๊ณต๋ฐฑ | 32 | 00100000 |
| ! | ๋๋ํ | 33 | 00100001 |
| " | ํฐ๋ฐ์ดํ | 34 | 00100010 |
| # | ํด์ | 35 | 00100011 |
| $ | ๋ฌ๋ฌ | 36 | 00100100 |
| % | ํผ์ผํธ | 37 | 00100101 |
| & | ์ฐํผ์๋ | 38 | 00100110 |
| ' | ์ํฌ์คํธ๋กํผ | 39 | 00100111 |
| ( | ์ผ์ชฝ ๊ดํธ | 40 | 00101000 |
| ) | ์ค๋ฅธ์ชฝ ๊ดํธ | 41 | 00101001 |
| * | ๋ณํ | 42 | 00101010 |
| + | ๋ํ๊ธฐ | 43 | 00101011 |
| , | ์ผํ | 44 | 00101100 |
| - | ํ์ดํ | 45 | 00101101 |
| . | ๋ง์นจํ | 46 | 00101110 |
| / | ์ฌ๋์ | 47 | 00101111 |
| : | ์ฝ๋ก | 58 | 00111010 |
| ; | ์ธ๋ฏธ์ฝ๋ก | 59 | 00111011 |
| ? | ๋ฌผ์ํ | 63 | 00111111 |
| @ | ์ณ ๊ธฐํธ | 64 | 01000000 |
๋ ๊ธด ์๋ก, ์ด์ง์ 01001000 01101001์ ์ญ์ง์ ์ 72์ 105๋ก ๋์ฝ๋ฉ๋์ด ํ
์คํธ Hi๋ฅผ ๋ง๋ญ๋๋ค. ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ ค๋ฉด ํ
์คํธ๋ฅผ ์ด์ง์๋ก ๋ณํ๊ธฐ๊ฐ Hi๋ฅผ ๋ค์ 01001000 01101001์ผ๋ก ๋ณํํฉ๋๋ค.
์ฃผ์ ์ฉ์ด ์ค๋ช
- ๋นํธ
- 0 ๋๋ 1์ ๋จ์ผ ์ด์ง ๊ฐ์ ๋ณด์ ํ๋ ๋์งํธ ์ ๋ณด์ ์ต์ ๋จ์์ ๋๋ค. "๋นํธ"๋ "์ด์ง ์ซ์"์ ์ถ์ฝ์ ๋๋ค.
- ๋ฐ์ดํธ
- ํ ๋จ์๋ก ์ฒ๋ฆฌ๋๋ 8๋นํธ ๊ทธ๋ฃน์ ๋๋ค. 1๋ฐ์ดํธ๋ \(2^8 = 256\)๊ฐ์ ์๋ก ๋ค๋ฅธ ๊ฐ(0โ255)์ ๋ํ๋ผ ์ ์์ผ๋ฉฐ, ์ด๋ ํ์ฅ ASCII ์งํฉ์ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ธ์ฝ๋ฉํ๊ธฐ์ ์ ํํ ์ถฉ๋ถํฉ๋๋ค. ์ด๊ฒ์ด ์ด์ง ํ ์คํธ๊ฐ 8๋นํธ ์ฒญํฌ๋ก ๋ถํ ๋๋ ์ด์ ์ ๋๋ค.
- ์ด์ง์ / 2์ง๋ฒ
-
0๊ณผ 1์ ๋ ๊ฐ์ง ๊ธฐํธ๋ง ์ฌ์ฉํ๋ ์ ์ฒด๊ณ์
๋๋ค. ๊ฐ ์๋ฆฌ๋ 2์ ๊ฑฐ๋ญ์ ๊ณฑ์ ๋ํ๋ด๋ฉฐ, ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์ฝ์ผ๋ฉด ์๋ฆฟ๊ฐ์ \(1, 2, 4, 8, 16, 32, 64, 128\)์
๋๋ค. ์๋ฅผ ๋ค์ด,
01000001= 64 + 1 = 65์ ๋๋ค. - ASCII
- ๋ฏธ๊ตญ ์ ๋ณด ๊ตํ ํ์ค ์ฝ๋๋ก, ์ ์ 0โ127์ ๋ฌธ์, ์ซ์, ๊ตฌ๋์ ๋ฐ ์ ์ด ์ฝ๋์ ๋งคํํ๋ ๋ฌธ์ ์ธ์ฝ๋ฉ์ ๋๋ค. ํ์ค ASCII๋ 7๋นํธ๋ฅผ ์ฌ์ฉํ๋ฉฐ, 8๋ฒ์งธ ๋งจ ์ ๋นํธ(๋ณดํต 0)๊ฐ ์ ์ฒด ๋ฐ์ดํธ๋ก ํจ๋ฉ๋ฉ๋๋ค.
- ์ฝ๋ ํฌ์ธํธ
-
๋ฌธ์ ์ธ์ฝ๋ฉ ์ฒด๊ณ์์ ๋จ์ผ ๋ฌธ์์ ํ ๋น๋๋ ์ซ์ ๊ฐ์
๋๋ค. ASCII์์ ๋ฌธ์
A์ ์ฝ๋ ํฌ์ธํธ๋ 65์ ๋๋ค. ๊ฐ์ ๋ฌธ์๋ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ U+0041(์ญ์ 65)์ ๊ฐ์ง๋๋ค. - ๋ฌธ์ ์ธ์ฝ๋ฉ
- ๋ฌธ์๋ฅผ ์ซ์ ์ฝ๋ ํฌ์ธํธ์ ๋งคํํ ๋ค์ ์ ์ฅ ๋๋ ์ ์ก์ ์ํด ๋ฐ์ดํธ๋ก ๋งคํํ๋ ๊ท์น ์งํฉ์ ๋๋ค. ASCII, Latin-1 ๋ฐ UTF-8์ ๋ชจ๋ ์ธ์ฝ๋ฉ์ด๋ฉฐ, ์ฌ๋ฐ๋ฅธ ์ธ์ฝ๋ฉ์ ์ ํํ๋ฉด ๋ฐ์ดํธ๊ฐ ์๋ํ ํ ์คํธ๋ก ๋ค์ ๋์ฝ๋ฉ๋ฉ๋๋ค.
- ์ ๋์ฝ๋
- ์ธ๊ณ ๋ชจ๋ ๋ฌธ์ ์ฒด๊ณ์ ๋ชจ๋ ๋ฌธ์์ ๊ณ ์ ํ ์ฝ๋ ํฌ์ธํธ๋ฅผ ํ ๋นํ๋ ๋ฒ์ฉ ๋ฌธ์ ํ์ค์ผ๋ก, ASCII์ 128์๋ฅผ ํจ์ฌ ์ด๊ณผํฉ๋๋ค. ์ฒ์ 128๊ฐ ์ฝ๋ ํฌ์ธํธ๋ ASCII์ ๋์ผํ๋ฏ๋ก ๊ธฐ๋ณธ ์์ด ํ ์คํธ๋ ๋ ๋ค์์ ๋์ผํ๊ฒ ๋์ฝ๋ฉ๋ฉ๋๋ค.
- UTF-8
- ์น์์ ์ ๋์ฝ๋์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ธ์ฝ๋ฉ์ ๋๋ค. ASCII ๋ฌธ์๋ฅผ ๋จ์ผ ๋ฐ์ดํธ๋ก ๋ํ๋ด๋ฉฐ(ASCII์ ์ ํํ ์ผ์น) ๋ ๋์ ์ฝ๋ ํฌ์ธํธ์ ๋ํด 2โ4๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ฐ ์์ด ํ ์คํธ๋ฅผ ์์ ํ ํ์ ํธํ์ฑ ์๊ฒ ์ ์งํฉ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ 2์ง์๋ฅผ 8๋นํธ ๋จ์๋ก ๋ฌถ์ด์ผ ํ๋์? ํ์ค ASCII๋ ๋ฌธ์ ํ๋๋น 8๋นํธ(1๋ฐ์ดํธ)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ๋๊ตฌ๋ ์ ๋ ฅ๊ฐ์ 8๋นํธ ๋จ์๋ก ์๋ผ๋ด๋ฏ๋ก, ๊ฐ ๋ฐ์ดํธ๊ฐ ์ ํํ ํ ๋ฌธ์๋ก ๋์๋ฉ๋๋ค.
8๋นํธ๋ก ๋ฑ ๋จ์ด์ง์ง ์์ผ๋ฉด ์ด๋ป๊ฒ ๋๋์? ๋ณํ๊ธฐ๋ ์ ๋ ฅ๋ ์ซ์๋ฅผ ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก 8๋นํธ์ฉ ์๋ผ ์ฒ๋ฆฌํฉ๋๋ค. ์ ํํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ผ๋ ค๋ฉด ๊ฐ ๋ฌธ์์ ๋ฐ์ดํธ๋ฅผ ๋น ์ง์์ด 8์๋ฆฌ๋ก ๋ง์ถฐ ์ ๋ ฅํ์ธ์.
ํ์ฅ ๋ฌธ์๋ ์ง์ํ๋์? 0~127 ๊ฐ์ ํ์ค ASCII์ด๊ณ , 128~255 ๊ฐ์ ํ์ฅ ๋ฌธ์์ ๋์๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ฐ์ดํธ ๊ฐ์ด ๊ทธ๋๋ก ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ๋ก ์ฌ์ฉ๋ฉ๋๋ค.