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
    if(num==0)
    {

        printf("%d",num);
    }
    else
    {
      char str[4];
      int i=3,digit;
       while (i >= 0)
    {
        digit = num & 0xF;   

        if (digit < 10)
            str[i] = digit + '0';
        else
            str[i] = digit - 10 + 'A';

        num >>= 4;   // move next nibble
        i--;
    }
    
    for(i=0;i<4;i++)
    {
        if(str[i]!='0')
        printf("%c",str[i]);
    }
    }
}

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

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

255

Expected Output

FF