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) {
    // Your logic here
    char result[20];
    int val = num < 0 ? 0 - num : num; 
    int i = 0; 
    while (val > 0)
    {
        int index_s =  (val % base);
        if (index_s > 10)
         {
            result[i++] = (index_s - 10)  + 'A' ;
            //printf("%c" , (index_s)  + 'A' );
         }
         else 
         {
             result[i++] = index_s + '0';
         }
       
        val = val /base;

    }
    if ( num < 0)
    {
        printf("- ");
    }
    if (num == 0)
    {
        printf("%d",num);
    }
    for (int c = i - 1 ; c >= 0   ; c-- )
    {
        printf("%c",result[c]);
    }
}

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