์์คํค(ASCII) ์ด์ง์ ๋ณํ๊ธฐ๋?
์ด ๋๊ตฌ๋ ์ผ๋ฐ ํ ์คํธ๋ฅผ ์ด์ง์ ์ฝ๋๋ก ๋ฐ๊ฟ ์ค๋๋ค. ์ ๋ ฅํ ๊ฐ ๋ฌธ์๋ ASCII ํ์์ ํด๋นํ๋ ์ซ์ ์ฝ๋(ํ์ค ASCII ๊ธฐ์ค 0~127)๋ฅผ ์ฐพ๊ณ , ๊ทธ ๊ฐ์ 8๋นํธ ์ด์ง์๋ก ํํํฉ๋๋ค. ์ด๋ ๊ฒ ๋ง๋ค์ด์ง ๋ฐ์ดํธ๋ฅผ ์ฐจ๋ก๋ก ์ด์ด ๋ถ์ด๋ฉด ๋ฉ์์ง ์ ์ฒด์ ์ด์ง์ ํํ์ด ์์ฑ๋ฉ๋๋ค. ์ปดํจํฐ๊ฐ ๋ด๋ถ์ ์ผ๋ก ํ ์คํธ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์๊ณผ ๋๊ฐ์ต๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
์ ๋ ฅ๋์ ์ํ๋ ํ ์คํธ๋ฅผ ์ง์ ์ ๋ ฅํ๊ฑฐ๋ ๋ถ์ฌ๋ฃ์ผ์ธ์. ๋ฐ์ดํธ๋ง๋ค ๊ณต๋ฐฑ์ ๋ฃ์์ง(์ฝ๊ธฐ ํธํจ), ๊ตฌ๋ถ์ ์์ด ๋นํธ๊ฐ ์ฐ์์ผ๋ก ์ด์ด์ง๊ฒ ํ ์ง ์ ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ณํ๊ธฐ๊ฐ ์ ์ฒด ์ด์ง์ ๋ฌธ์์ด๊ณผ ํจ๊ป ๋ฌธ์ ์, ์ด ๋นํธ ์๋ฅผ ๋ณด์ฌ ์ค๋๋ค.
๋ณํ ๊ณต์ ์ดํดํ๊ธฐ
๊ฐ ๋ฌธ์ c์ ๋ํด ๋ณํ๊ธฐ๋ ๊ทธ ๋ฌธ์์ ์ญ์ง์ ์ฝ๋์ธ \(\operatorname{ASCII}(c)\)๋ฅผ ๊ตฌํฉ๋๋ค. ์ด ์ฝ๋๋ฅผ 2์ง๋ฒ์ผ๋ก ๋ฐ๊พผ ๋ค, 8๋นํธ๊ฐ ๋ ๋๊น์ง ์์ชฝ์ 0์ผ๋ก ์ฑ์๋๋ค.
$$\text{Binary} = \bigoplus_{i=1}^{n}\ \operatorname{pad}_{8}\!\left(\text{bin}\big(\operatorname{ASCII}(\text{Text}_i)\big)\right)$$์๋ฅผ ๋ค์ด ๋ฌธ์ "H"์ ASCII ์ฝ๋๋ 72์ด๊ณ , ์ด์ง์๋ก๋ \(1001000\)์ธ๋ฐ, 8๋นํธ๋ก ๋ง์ถ๋ฉด \(01001000\)์ด ๋ฉ๋๋ค. ๋ชจ๋ ๋ฌธ์์ ๋ฐ์ดํธ๋ฅผ ์ด์ด ๋ถ์ด๋ฉด ์ต์ข ๊ฒฐ๊ณผ๊ฐ ๋ง๋ค์ด์ง๋๋ค.
์ค์ ์์
๋จ์ด "Hi"๋ฅผ ์ดํด๋ด
์๋ค. "H" = 72 = \(01001000\)์ด๊ณ , "i" = 105 = \(01101001\)์
๋๋ค. ๊ณต๋ฐฑ ๊ตฌ๋ถ์๋ฅผ ์ฐ๋ฉด ๊ฒฐ๊ณผ๋ 01001000 01101001์
๋๋ค. ๋ฌธ์๋ 2๊ฐ, ์ด ๋นํธ ์๋ 16๋นํธ์
๋๋ค.
ํ ์คํธ๋ฅผ ์์ผ๋ก ์ด์ง๋ฒ์ผ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ
ํ ์คํธ๋ฅผ 8๋นํธ ์ด์ง๋ฒ์ผ๋ก ๋ณํํ๋ ๊ฒ์ ๋ฌธ์๋ณ ํ๋ก์ธ์ค์ ๋๋ค: ๊ฐ ๋ฌธ์๋ ๋ ๋ฆฝ์ ์ผ๋ก 1๋ฐ์ดํธ๋ก ๋ณํ๋๊ณ , ๋ฐ์ดํธ๋ ์์๋๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ค์์ ๋ฌธ์ K๋ก ์ค๋ช ๋ ์ ์ฒด ์ ์ฐจ์ ๋๋ค.
- ํ ๋ฌธ์๋ฅผ ๊ฐ์ ธ๊ฐ๋๋ค. ํ
์คํธ๋ฅผ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก, ํ ๋ฒ์ ํ ๋ฌธ์์ฉ ์ฒ๋ฆฌํฉ๋๋ค. ๋ฌธ์
K๋ฅผ ๋ณํํ ๊ฒ์ ๋๋ค. - ASCII ์ญ์ง๋ฒ ์ฝ๋๋ฅผ ์ฐพ์๋ด
๋๋ค. ์์ ์ฐธ๊ณ ํ๋ฅผ ์ฌ์ฉํ๋ฉด,
K์ ์ญ์ง๋ฒ ASCII ์ฝ๋๋ 75์ ๋๋ค. - ์ญ์ง๋ฒ ์ฝ๋๋ฅผ 2์ง๋ฒ์ผ๋ก ๋ณํํฉ๋๋ค. 2๋ก ๋ฐ๋ณตํด์ ๋๋๊ณ ๋๋จธ์ง๋ฅผ ์๋์์ ์๋ก ์ฝ์ต๋๋ค:
75 รท 2 = 37 r 1; 37 รท 2 = 18 r 1; 18 รท 2 = 9 r 0; 9 รท 2 = 4 r 1; 4 รท 2 = 2 r 0; 2 รท 2 = 1 r 0; 1 รท 2 = 0 r 1.
๋ง์ง๋ง์์ ์ฒซ ๋ฒ์งธ๋ก ๋๋จธ์ง๋ฅผ ์ฝ์ผ๋ฉด1001011์ ์ป์ต๋๋ค. ์๋ฆฌ์ ๊ฐ์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค: \(64 + 8 + 2 + 1 = 75\), ์ด์ง๋ฒ์ผ๋ก๋ \(1001011_2 = 75_{10}\) 1001011์ ๋๋ค. - 0์ผ๋ก ์ผ์ชฝ ํจ๋ฉํ์ฌ 8๋นํธ๋ก ๋ง๋ญ๋๋ค. ์๋ณธ ์ด์ง๋ฒ ๊ฐ์ 8์๋ฆฌ๋ณด๋ค ์งง์ ์ ์์ต๋๋ค. ๋ฐ์ดํธ๊ฐ ์ ํํ 8๋นํธ ๋๋น๊ฐ ๋ ๋๊น์ง ์์ 0์ ์ถ๊ฐํฉ๋๋ค:
1001011โ01001011. ์ด ๋ฐฉ์์ ๋ชจ๋ ๋ฌธ์๋ ์ ํํ 1๋ฐ์ดํธ๋ฅผ ์ฐจ์งํ๋ฏ๋ก, ์ด ํจ๋ฉ ๋จ๊ณ๋ ๋ชจ๋ ๋ฐ์ดํธ์ ๊ธธ์ด๋ฅผ ๊ฐ๊ฒ ์ ์งํ๊ณ ๋์ฝ๋ฉ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. - ๋ฐ์ดํธ๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค. ๋ชจ๋ ๋ฌธ์์ ๋ํด 1~4๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์์๋๋ก ๊ฒฐํฉํฉ๋๋ค. ๋จ์ด
Kit์ ๊ฒฝ์ฐ:K=01001011,i=01101001,t=01110100, ๊ฒฐ๊ณผ๋010010110110100101110100์ ๋๋ค. ๊ตฌ๋ถ์๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ์ค์ ํ๋ฉด, ๊ฐ์ ์ถ๋ ฅ์01001011 01101001 0111010001001011 01101001 01110100์ผ๋ก ์ฝํ๋๋ค.
ํ๋ก์ธ์ค๋ฅผ ์ญ์ผ๋ก ์งํํ๋ ค๋ฉด, ์ด์ง๋ฒ ๋ฌธ์์ด์ 8๋นํธ ๊ทธ๋ฃน์ผ๋ก ๋๋๊ณ ๊ฐ ๋ฐ์ดํธ๋ฅผ ์ด์ง๋ฒ-ํ ์คํธ ๋์ฝ๋๋ก ๋ฌธ์๋ก ๋์ฝ๋ฉํฉ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ ๋ฌธ์๋น 8๋นํธ์ธ๊ฐ์? ํ์ค ASCII๋ 7๋นํธ๋ฉด ์ถฉ๋ถํ์ง๋ง, 1๋ฐ์ดํธ(8๋นํธ)๊ฐ ๋ณดํธ์ ์ธ ์ ์ฅ ๋จ์์ด๊ธฐ ๋๋ฌธ์ ๊ฐ ๋ฌธ์๋ฅผ 8๋นํธ๋ก ์ฑ์ ํํํฉ๋๋ค.
๊ณต๋ฐฑ์ด๋ ๊ธฐํธ๋ ์ง์ํ๋์? ๋ค. ๊ณต๋ฐฑ์ ASCII 32(\(00100000\))์ด๋ฉฐ, ๋ฌธ์ฅ ๋ถํธ๋ ๊ฐ์ ๊ณ ์ ํ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
ํ๊ธ์ด๋ ์ ์ผํธ ๋ฌธ์, ์ด๋ชจ์ง๋ ์ด๋ป๊ฒ ๋๋์? ์ด ๋ณํ๊ธฐ๋ ํ์ค ASCII๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค. ์ฝ๋ 127์ ๋์ด๊ฐ๋ ๋ฌธ์(ํ๊ธ, ์ ์ผํธ ๋ถํธ, ์ด๋ชจ์ง ๋ฑ)๋ ASCII ๋ฒ์ ๋ฐ์ด๋ผ 8๋นํธ๋ก๋ ์ ๋๋ก ์ธ์ฝ๋ฉ๋์ง ์์ ์ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ UTF-8 ๊ฐ์ ๋ค๋ฅธ ์ธ์ฝ๋ฉ ๋ฐฉ์์ด ํ์ํฉ๋๋ค.