• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

한글 문자열

18.02.22 22:44 작성 조회수 218

0

한글은 아스키코드는 어떻게 알아요? sizeof 함수를 써봤는데 마이너스 숫자나오고 그래서요

답변 2

·

답변을 작성해보세요.

2

안녕하세요, 나도코딩입니다. 한글 아스키코드값은 이 곳에서 확인하실 수 있구요, http://minipol.tistory.com/entry/%ED%95%9C%EA%B8%80-11172%EC%9E%90-ASCII%EC%95%84%EC%8A%A4%ED%82%A4-%EC%BD%94%EB%93%9C-%EA%B0%92 아래 링크에 가시면 문자열 관련 보다 자세한 설명이 있어서 깊이 공부하실 수 있을 것 같아요 https://m.blog.naver.com/PostView.nhn?blogId=ruvendix&logNo=220904631516&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F 중간에 Unicode 관련 설명이 있는데, 한글 유니코드는 AC00 부터 D7A3 까지로 정의가 되어 있으며, '가'~'힣' 까지입니다. printf("'가' 유니코드(AC00) : \uAC00 \n"); printf("'힣' 유니코드(D7A3) : \uD7A3 \n"); 위 예제코드를 직접 실행시켜보시면 값을 출력해보실 수 있을 거에요 ! 참고로, 첫번째 드린 링크에는 '가' 가 44032 로 되어 있고 두 번째 드린 링크에는 AC00 으로 되어 있는데요, 44032 라는 10진 정수를 16진수로 변환하면 AC00 이 됩니다. (즉 같은 수입니다) 10진수를 16진수로 변환하는 방법은, 44032 를 16 으로 나누면 몫 2752, 나머지 0, 이 때 나머지는 가장 오른쪽 값이 됩니다 [ ][ ][ ][0], 그리고 다시 몫 2752 를 16 으로 나누면 몫 172 에 나머지 0, 이 때 나머지를 가장 오른쪽 앞에 넣으면 [ ][ ][0][0] 이 되구요, 다시 몫 172 를 16 으로 나누면 몫 10, 나머지 12 가 되는데, 나머지를 가장 오른쪽 앞앞에 넣고 [ ][12][0][0] 그리고 몫인 10 은 16으로 더이상 나눌 수 없으니 맨 앞에 넣습니다. [10][12][0][0]. 그리고 16 진수로는 10 은 A 이며, 12 는 C 가 됩니다. (10진수 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 의 값이 16 진수로 표현하면 0 1 2 3 4 5 6 7 8 9 A B C D E F 입니다) 그래서 결국 [A][C][0][0] 이 되고 위에서 본 AC00 의 값이 나오게 됩니다. 감사합니다. ^^

0

답변감사합니다