16์ง์ โ ASCII ๋ณํ๊ธฐ๋?
Hex to ASCII ๋ณํ๊ธฐ๋ 16์ง์๋ก ํํ๋ ๊ฐ์ ๋ค์ ์ฌ๋์ด ์ฝ์ ์ ์๋ ํ ์คํธ ๋ฌธ์๋ก ๋๋๋ ค ์ค๋๋ค. ์ปดํจํฐ๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ซ์๋ก ์ ์ฅํ๋๋ฐ, 16์ง์(16์ง๋ฒ)๋ ์ด๋ฌํ ๋ฐ์ดํธ ๊ฐ์ ์งง๊ณ ๊ฐ๊ฒฐํ๊ฒ ํ๊ธฐํ๋ ๋ฐฉ์์ ๋๋ค. ์ด ๋๊ตฌ๋ ์ ๋ ฅํ 16์ง์๋ฅผ ๋ฐ์ ๋ ์๋ฆฌ์ฉ ๋๋๊ณ , ๊ฐ ์์ ์ซ์ ๊ฐ์ผ๋ก ๋ณํํ ๋ค ๊ทธ ๊ฐ์ ํด๋นํ๋ ๋ฌธ์๋ก ๋งคํํ์ฌ ์๋ ํ ์คํธ๋ฅผ ๋ณต์ํฉ๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
16์ง์ ๋ฌธ์์ด์ ์
๋ ฅ๋์ ๋ถ์ฌ๋ฃ๊ฑฐ๋ ์ง์ ์
๋ ฅํ์ธ์. ๋ฐ์ดํธ๋ ๊ณต๋ฐฑ์ด๋ ์ผํ๋ก ๊ตฌ๋ถํด๋ ๋๊ณ , ๋์ด์ฐ๊ธฐ ์์ด ํ๋๋ก ์ด์ด ๋ถ์ฌ ์จ๋ ๋ฉ๋๋ค. 0x ์ ๋์ฌ๊ฐ ์์ด๋ ์๋์ผ๋ก ๋ฌด์๋ฉ๋๋ค. ๊ณ์ฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋์ฝ๋ฉ๋ ํ
์คํธ๊ฐ ๊ณง๋ฐ๋ก ํ์๋๋ฉฐ, ๋ช ๋ฐ์ดํธ๊ฐ ๋ณํ๋์๋์ง๋ ํจ๊ป ์๋ ค ์ค๋๋ค.
๋ณํ ์๋ฆฌ
16์ง์๋ 16์ง๋ฒ์ด๋ฏ๋ก ๋ ์๋ฆฌ๊ฐ ๊ณง 0๋ถํฐ 255๊น์ง์ ๊ฐ์ ๊ฐ๋ 1๋ฐ์ดํธ๋ฅผ ์๋ฏธํฉ๋๋ค. ๋์ฝ๋ฉ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค.
$$\text{ASCII} = \bigsqcup_{k=0}^{n-1} \text{char}\Big(\,\text{hex}_{16}\big(\,\text{Hex Input}[2k\,..\,2k{+}1]\big)\Big)$$๊ฐ ์ p์ ๋ํด int(p, 16)์ผ๋ก 10์ง์ ์ฝ๋๋ฅผ ๊ตฌํ ๋ค์, chr(code)๋ก ํด๋น ๋ฌธ์๋ฅผ ์ป์ต๋๋ค. ์๋ฅผ ๋ค์ด 48์ \(4\times16 + 8 = 72\)์ด๊ณ , 72๋ฒ ๋ฌธ์๋ ๋๋ฌธ์ H์
๋๋ค.
์ค์ ์์
16์ง์ ๋ฌธ์์ด 48 65 6C 6C 6F๋ฅผ ์ดํด๋ด
์๋ค. ๊ฐ ์์ ๋ณํํ๋ฉด \(48 \to 72 \to \text{"H"}\), \(65 \to 101 \to \text{"e"}\), \(6C \to 108 \to \text{"l"}\), \(6C \to 108 \to \text{"l"}\), \(6F \to 111 \to \text{"o"}\)๊ฐ ๋๊ณ , ์ด๋ฅผ ์ด์ด ๋ถ์ด๋ฉด Hello๊ฐ ๋ฉ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
๋ฐ์ดํธ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ๊ผญ ํ์ํ๊ฐ์? ์๋์. ๊ณต๋ฐฑ, ์ผํ, 0x ์ ๋์ฌ๋ ๋ชจ๋ ์ ํ ์ฌํญ์ด๋ฉฐ ๋์ฝ๋ฉ ์ ์ ์๋์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค.
์๋ฆฟ์๊ฐ ํ์๋ฉด ์ด๋ป๊ฒ ๋๋์? ์ ํจํ ๋ฐ์ดํธ๋ 16์ง์ ๋ ์๋ฆฌ๊ฐ ํ์ํ๋ฏ๋ก, ์ง์ด ๋ง์ง ์๋ ๋ง์ง๋ง ํ ์๋ฆฌ๋ ๋ฌด์๋ฉ๋๋ค.
๋๋ฌธ์์ ์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋์? ๋ ๋ค ๊ฐ๋ฅํฉ๋๋ค. 6c์ 6C๋ ๋๊ฐ์ด ๋์ฝ๋ฉ๋ฉ๋๋ค.