초성 하나하나에 대응하는 숫자
ㄱ0 ㄲ1 ㄴ2 ㄷ3 ㄸ4 ㄹ5 ㅁ6 ㅂ7 ㅃ8 ㅅ9 ㅆ10 ㅇ11 ㅈ12 ㅉ13 ㅊ14 ㅋ15 ㅌ16 ㅍ17 ㅎ18
중성 하나하나에 대응하는 숫자
ㅏ0 ㅐ1 ㅑ2 ㅒ3 ㅓ4 ㅔ5 ㅕ6 ㅖ7 ㅗ8 ㅘ9 ㅙ10 ㅚ11 ㅛ12 ㅜ13 ㅝ14 ㅞ15 ㅟ16 ㅠ17 ㅡ18 ㅢ19 ㅣ20
종성 하나하나에 대응하는 숫자
0 ㄱ1 ㄲ2 ㄳ3 ㄴ4 ㄵ5 ㄶ6 ㄷ7 ㄹ8 ㄺ9 ㄻ10 ㄼ11 ㄽ12 ㄾ13 ㄿ14 ㅀ15 ㅁ16 ㅂ17 ㅄ18 ㅅ19 ㅆ20 ㅇ21 ㅈ22 ㅊ23 ㅋ24 ㅌ25 ㅍ26 ㅎ27
구하는 공식:<초성>×588 + <중성>×28 + <종성> + 44032(0xAC00)
예1 ) '해'는 초성이 'ㅎ', 중성이 'ㅐ', 종성이 없습니다.
초성 'ㅎ'은 18, 중성 'ㅐ'는 1, 종성은 없으므로 0입니다.
식에 대입하면,
18×588 + 1×28 + 0 + 44032 = 10584 + 28 + 44032 = 54644
이것을 16진수로 변환하면 D574. 따라서 'U+D574'입니다.
예 2) '뷁'은 초성이 'ㅂ', 중성이 'ㅞ', 종성이 'ㄺ'입니다.
초성 'ㅂ'은 7, 중성 'ㅞ'는 15, 종성 'ㄺ'은 9입니다.
식에 대입하면,
7×588 + 15×28 + 9 + 44032 = 4116 + 420 + 9 + 44032 = 48577
이것을 16진수로 변환하면 BDC1. 따라서 'U+BDC1'입니다.
이 공식이 성립하는 이유를 설명해보겠습니다.
초성이 19개 있고 중성이 21개 있고 종성이 (없는 것까지 합쳐서) 28개 있습니다.
유니코드를 보면 현대 한글 11172자를 초성, 중성, 종성 순. 즉 사전식으로 되어 있습니다.
따라서 초성 하나를 결정지으면 중성과 종성은 결정되지 않았으므로 <중성 개수>×<종성 개수>, 21×28 즉 588개의 글자가 있습니다. 그리고 초성과 중성을 선택하면 같은 이유로 <종성 개수>, 즉 28개의 글자가 있습니다. 종성까지 선택하면 1개의 글자만 선택되지요.
뒤에 44032를 더하는 이유는 이것을 16진수로 변환한 AC00이 한글의 맨 첫 글자 '가'이기 때문입니다.
이 정도면 이해하시겠죠?
참 멋진 공식입니다.ㅎ