http://ko.wikipedia.org/wiki/%ED%95%9C%EA%B8%80_%EC%83%81%EC%9A%A9_%EC%A1%B0%ED%95%A9%ED%98%95_%EC%9D%B8%EC%BD%94%EB%94%A9


상용 조합형에서는 한글을 2바이트 코드로 표현하며, 최상위 비트는 1로 설정하고 초성, 중성, 종성에 각각 5비트씩 할당하여 차례로 조합한다.


코드 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 28 29 30 31
초성 - 채움 - - - - - - - - - - -
중성 - - 채움 - - - - - -
종성 - 채움 -

KSSM 조합형에는 표준 KS 조합형과 달리 , , , 와 같은 한글 고어도 포함되어 있으며, 특수 문자의 배열은 다르다.

특수문자와 한자는 위와 같이 조합되는 한글을 피하기 위하여 별도의 계산 과정을 거친다. 이는 Shift_JIS와 그 방법이 비슷하다.

  1. 행 번호에 0x191(특수문자의 경우, 0x30행 미만) 또는 0x176(한자의 경우, 0x4A행 이상)을 더한다. 이 값을 2로 나눈 몫을 첫번째 바이트로 한다.
  2. 1에서 나온 값이 짝수인가 홀수인가에 따라, 열 번호에 0x3D를 더하거나(홀수) 0x21을 뺀다(짝수).
  3. 2에서 나온 값이 0x4E보다 작으면 0x31을 더하고, 아니면 0x43을 더해서 두번째 바이트로 한다.

예를 들어 "위"는 초성·중성·종성 코드가 13, 23, 1이 되고, 2진법으로는 1 01101 10111 00001이 되므로 B6 E1이 라는 두 바이트로 표현된다. 그리고 "∞"는 KS X 1001에서 0x21행 0x44열에 있는 특수문자이므로, 첫째 단계에서 0x21 + 0x191 = 0x1B2, 둘째 단계에서 0x44 - 0x21 = 0x23, 셋째 단계에서 0x23 + 0x31 = 0x54가 되어 최종적으로 D9 54라는 두 바이트로 표현된다.

신고
Posted by jujubong

티스토리 툴바