Convert Integer to Hex String Without sprintf or itoa functions

Code

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

void print_hex(uint16_t num) {
    // Your logic here
    int n;
    n = num;
    int rem;
    char x;
    char str[5];
    int i;
    if(n==0)printf("0");
    else {
    while(n){
        rem = n % 16;
        if(rem <10) {
            str[i] = rem + '0';
            i++;
        }
        else if(rem >= 10) {
            x = 'A' + (rem - 10);
            str[i] = x;
            i++;
        }
        n = n/16;
    }
    str[i] = '\0';
    }
 

    int len;
    for(len=0;str[len] != '\0';len++);

    int l;
    int r;

    l = 0;
    r = len-1;

    while(l<r){
        char temp;
        temp = str[l];
        str[l] = str[r];
        str[r] = temp;
        l++;
        r--;
    }
       printf("%s",str);
}

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

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

255

Expected Output

FF