Convert Decimal Number to Binary or Hex Without itoa function

Code

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

void print_base(uint16_t num, uint8_t base) {
    if (num == 0) putchar('0');
    char str[] = "0123456789ABCDEF";
    char buff[17] = {'0'};
    buff[16] = '\0'; 
    int idx = 0; 

    while (num)
    {
        buff[idx] = str[num % base]; 
        num /= base; 
        idx++;
    }

    for (int i = idx - 1; i >= 0; i--)
    {
        putchar(buff[i]); 
    }
}

int main() {
    uint16_t num;
    uint8_t base;
    scanf("%hu %hhu", &num, &base);

    print_base(num, base);
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

10 2

Expected Output

1010