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)
{
    char buffer[17];  
    int index = 0;
    if (base != 2 && base != 16)
        return;
    if (num == 0)
    {
        putchar('0');
        return;
    }

    while (num > 0)
    {
        uint8_t remainder = num % base;

        if (remainder < 10)
            buffer[index++] = '0' + remainder;
        else
            buffer[index++] = 'A' + (remainder - 10);

        num /= base;
    }

    // In ra đúng thứ tự
    while (index > 0)
    {
        putchar(buffer[--index]);
    }
}

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