Convert Integer to Hex String Without sprintf or itoa functions

Code

#include <stdio.h>
#include <stdint.h>

void print_hex(uint16_t num) {
    if (num==0) printf ("0");
    char c[16];
    int i = 0;
    while (num>0) {
        int remainder = num % 16;
        if (remainder >= 10) c[i++] = (remainder - 10) + 'A';
        else c[i++] = remainder + '0';
        num/=16;
    }
    for (int j = i-1; j >=0; j--) {
        printf("%c", c[j]);
    }
}

int main() {
    uint16_t num;
    scanf("%hu", &num);
    print_hex(num);
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

255

Expected Output

FF