프로그래밍 노트

C에서 16진수를 10진수로 10진수를 16진수로 바꾸기 (MFC) 본문

Win32 SDK 초보

C에서 16진수를 10진수로 10진수를 16진수로 바꾸기 (MFC)

띠리 2007. 9. 7. 17:55
설명은 따로 필요없을 것같다.
그냥 밑에 소스를 보면....

void main()

{

    int    nDec = 0;

    char szHex[16];


    // 16진수를 10진수로


    sprintf(szHex, "FF");


    nDec = (int)strtol(szHex, NULL, 16);


    printf(" %s -> %d \n", szHex, nDec);


    nDec = nDec - 0xF;


    // 10진수를 16진수로


    sprintf(szHex, "%X", nDec);


    printf("%d -> %s \n", nDec, szHex);


}



실행한 결과

 FF -> 255
240 -> F0


strtol 함수를 알면 16진수를 10진수로 바꾸는 것을 한줄에 끝낼 수 있는데
저 함수를 모르면...

sprintf의 포멧에서 %X를 쓰느냐 %x를 쓰느냐에
따라서 16진수의 영문자(A~F)가 대문자로 표시되느냐
소문자로 표시되느냐가 결정되어진다.
Comments