개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.11 14:13

mb_ord 함수 이해를 위한 도움을 요청합니다

목록
  • 알고리즘광 20일 전 2025.05.11 14:13 인기
  • 858
    1
안녕하세요 선생님. 저는 C++ 프로그래밍을 공부하고 있습니다. 최근에 mb_ord 함수에 대해 공부를 하면서 이해가 잘 안 가는 부분이 있어 질문을 드리겠습니다.

mb_ord 함수는 문자의 Unicode 코드 포인트를 반환하는 함수입니다. 하지만 이 함수를 사용할 때, 특정 문자의 코드 포인트가 0xFFFF보다 큰 경우에 대해 어떻게 처리해야 하는지 이해가 잘 안 가는 것 같습니다.

예를 들어, mb_ord 함수를 사용하여 'A' 문자의 코드 포인트를 반환하는 경우, 65라는 값이 반환됩니다. 하지만 'A' 문자의 코드 포인트가 0xFFFF보다 큰 문자인 경우, 어떻게 해야 하는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  20일 전



    mb_ord 함수는 문자의 Unicode 코드 포인트를 반환하는 함수입니다. 이 함수는 16비트 코드 포인트를 지원하기 때문에, 0xFFFF보다 큰 코드 포인트를 처리할 때는 특수한 방법이 필요합니다.

    0xFFFF보다 큰 코드 포인트를 처리하기 위해서는, mb_ord 함수를 사용하여 코드 포인트를 얻은 후, 0x10000 이상인 경우에만 0x10000을 뺀 후, 0x10FFFF를 곱한 후, 0x10000을 더하는 방법을 사용할 수 있습니다.

    예를 들어, 'A' 문자의 코드 포인트가 0xFFFF보다 큰 경우, 다음과 같이 처리할 수 있습니다.

    #hostingforum.kr
    cpp
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        int codePoint = mb_ord('A');
    
        if (codePoint > 0xFFFF) {
    
            codePoint -= 0x10000;
    
            codePoint = (codePoint << 10) + (codePoint >> 20) + 0x10000;
    
        }
    
        std::cout << codePoint << std::endl;
    
        return 0;
    
    }
    
    


    이러한 방법을 사용하면, 0xFFFF보다 큰 코드 포인트를 처리할 수 있습니다.

    2025-05-11 14:14

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,075건 / 25 페이지

검색

게시물 검색