공부하는 남자   



  • Key log

  • 공부 하는 남자
    검색 하는 남자

  • Log in out

  • 관리자

  • 편집

  • 글 쓰기

  • Link
  • Home
  • 유니코드 응용 십육진수를 십진수로 쉽게 바꾸기

    2014. 7. 25. 12:18   코딩문자 배우기


    십육진수를 십진수로 쉽게 바꿔보자.

    지난시간에 에는 십진수를 십육진수로 변환 하는 법을 공부 해 봤습니다. 

    오늘은 유니코드의 십육진수를 이용해 십진수 로 변환하는 쉽고 간단한 방법에 대해 공부를 해 봅시다. 

    ※참고할 페이지
    우리 한글의 유니코드 도표 구간은 Unicode+AC00~Unicode+D7AF까지의 구간 에 배정 되어 있습니다. 

    [U+AC00]~[U+D7AF] 이렇게 표시 할수가 있겠죠 
    AC00은 한글 이고 마지막 글자 은 D7A3 입니다.

    그런데 유니코드는D7AF까지가 한글 코드 범위인데요 12개 코드는 blank로 남겨져 있답니다.




    그럼 이 십육진수의 수를 십진수로 고쳐서 우리 한글이 총 몇자의 글이 코드 되었는지 알아볼수가 있을 것입니다. 

    우선 AC00을 십진수로 바꿔야 겠죠 

    지난글 십진수를 십육진수로 바꾸는 법에서 공부 했듯이 

    ※참고할 페이지 

    제일 아래자리 십진수로 치면 단 자리수 십진수에서는 9가 끝나면 상위 십자리수로 자리바꿈이 일어나 10이 되죠 

    ※참고할 페이지 
    십육진수는 0부터 9까지의 정수와 A부터F까지 의 라틴어로 나타 내고 있습니다.

    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
     
    F=15니까 F가 끝나면 16이되면서 상위 십의 자리로 자리 바꿈이 일어나겠죠 표기는 10(16) 이렇게 하고 읽을때는 일공 이라고 읽습니다.

    10,11,12,13,14,15,16,17,18,19, 다음엔 1A, 1B, 1C, 1D, 1E, 1F, 20, 이런식으로 나열이 됩니다.

    여기서 먼저 계산 해 둘것이 있는데요 단자리 에서 상위 자리로  자리 바꿈 하는 데는 16이 필요 하다는 계산이 나옵니다. 

    그럼 여기서 상위 자리로 자리 바꿈 하려면 16이  16번 이 더해져야 백의 자리로 자리 바꿈이  일어 나겠죠

    그럼 16×16=256이 되어야 백의 자리로 자리 바꿈이 일어 나니까 AC00에서 단자리와 십자리는 0 이니까 접어두고 C=12 라는건 지난 시간에 배운 내용 이니 그렇다면 256이 12번 자리 바꿈 했다는 이야기 입니다.

    그럼 계산 해 보면  3072가 되는 것 입니다. 

    그럼 더 상위 자리로 자리 바꿈이 일어나기 위해서는 256이 16번 일어나야 하겠죠

    그럼 256×16번 일어났다는 계산이 나옵니다. 

    계산 해보면 4096이 되고 A=10 이니까 4096이 10번 일어났다는 것이죠 40960이 됩니다. 

    40960+3072=44032라는 십진수 값이 나오게 되네요 

    자그럼[U+AC00]은 십진수 로는[U+44032]라고 표기를 해 두죠 

    이번엔 [D7AF] 의 십진수 값을 계산 할 차례 입니다.

    위에서 계산한 방식을 그대로 적용 하면 되겠죠 단자리수 부터 계산 해서 표기를 해둡시다. 

    F=15 라는 값이 나왔 고요 다음A=10이니까 16×10=160 다음수7은 256이 7번 일어난 수니까 256×7=1792가 되겠죠 

    그럼 제일 윗자리로 자리 바꿈 하기 위해서는 위에서 배운대로 4096이 D번 일어 났으니까 D=13 그래서 4096×13= 53248 이제 모두 더하면 되겠죠 53248+1792+160+15=55215라는 답이 나오네요 

    유니코드식으로 표기 하면 [U+55215] 가 되겠네요 

    그럼 한글 의 총수를 계산 해 볼까요 55215-44032=11183개의 한글이 유니 코드에 등재 되어 있다는 결론이 나옵니다.
     
    이것을 공식으로 만들어 보면 16진수 4자리기준 역수 XXXX= 1×(X)+16×(X)+16\2×(X)+16\3×(X)=1X+16X+256X+4096X=십진수
    이런 공식이 만들어 지는 것을 볼수 있습니다.

    위의 공식을 나타 내면서 자승수를 표현 하기가 용이 하지 않은 관계로 부득이 역 슬러시(\) 기호를 사용 하였습니다.

    역슬러시 다음에 오는 숫자들은 자승을 나타 내는 숫자 입니다.

    위에서 언급 했듯이 한글의 글자수는 실질적으로는 12개가 적은 11171개의 코드를 사용 하고 있는데요 아마 아직 발굴 하지 못한 글자가 나올 것을 대비 해 등재 할 글자를 위해 비워 두었다고 생각이 듭니다.

    오늘은 유니 코드 십육진수를 십진수로 쉽게 고치는 법을  공부 해봤습니다.



    T,back:     Comment: