정수를 16 진수열에 변환한다


함수명
int2hexsz  정수를 16 진수열에 변환한다
형식
void int2hexsz(char *str, int num);
인수
str  (출력) 16 진수 ASCIZ 캐릭터 라인
num  (입력) 변환하고 싶은 정수
함수치
없음
주의 사항

용례(int2hexsz-test.c )
char str[15];
int2hexsz(str, 12345)

프로그램(int2hexsz.c )
void int2hexsz(char *str, int num)
{
    int i;
    static void rint2hexsz();

    i = 0;
    if (num < 0) {
        num = -num;
        *str = '-';
        i++;
    }
    rint2hexsz(str, num, &i);
    *(str + i) = '\0';
}

static void rint2hexsz(char *str, int num, int *off)
{
    int k, n;

    if ((k = num >> 4) ! = 0) rint2hexsz(str, k, off);
    n = num & 0xf;
    *(str + *off) = n <= 9 ?  n + '0' : n - 10 + 'A';
    (*off)++;
}
설명
재귀법을 사용. 선행의 숫자에 대해서는 자기 자신을 소환이라고 대응해, 최종자리수만을 변환해 처리한다. 그 때, A-F 에의 변환에 주의 일.

관련 함수
정수를 2 진수열에 변환하는, 정수를 10 진수열에 변환하는, 2 진수열을 정수에 변환하는, 10 진수열을 정수에 변환하는, 16 진수열을 정수에 변환한다