120. Convert Integer to Hex String Without sprintf or itoa functions

Back To All Submissions
Previous Submission
Next Submission

Code

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

void print_hex(uint16_t num) {
    // Your logic here
    if(num == 0) printf("%c" ,'0');
    char retval[4];
    char hex_char[] = "0123456789ABCDEF";
    int i=0;
    while(num !=0)
    {
        uint8_t byte  = num %16;
      //  printf("%d " ,byte);
        retval[i] =hex_char[byte];
        num/=16;
        i++;
    }
    //printf("HIIIIIIII");
    for(int j=(i-1); j >=0;j--)
    {
        printf("%c",retval[j]);
    }
   // printf("%c%c%c%c",retval[3],retval[2],retval[1],retval[0]);
}

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

Solving Approach

 

 

 

Was this helpful?
Upvote
Downvote