Convert Integer to Hex String Without sprintf or itoa functions

Code

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

void reverse(char *s,int len){
    int start= 0;
    int end = len-1;
    while(start<end){
        char temp = s[start];
        s[start] = s[end];
        s[end] = temp;
        start++;
        end--;
    }
}

void print_hex(uint16_t num) {
    char str[100];
    int k = 0;

    if(num==0){
        str[k++] = '0';
        str[k] = '\0';
    }else{
        while(num>0){
            int rem = num%16;
            if(rem<9){
                str[k++] = rem + '0';
            }else{
                str[k++] = (rem - 10) + 'A';
            }
            num/=16;
        }
        str[k] = '\0';

        reverse(str,k);
    }
    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