116. Convert Decimal Number to Binary or Hex Without itoa function

Back To All Submissions
Previous Submission
Next Submission

Code

#include <stdio.h>
#include <stdint.h>
void get_hex(int val){
    switch(val){
        case 10:
            printf("A");
        case 11:
            printf("B");
        case 12:
            printf("C");
        case 13:
            printf("D");
        case 14:
            printf("E");
        case 15:
            printf("F");
    }
}
void print_base(uint16_t num, uint8_t base) {
    int bin[16]={0};
    int i,j=0;
    if(num==0){
        printf("0");
        return;
    }
    while(num){
        bin[i++]=num%base;
        num = num/base;
    }
    for(i=i-1;i>=0;i--){
        if(bin[i]>9)
            get_hex(bin[i]);
        else
            printf("%d",bin[i]);
    }
}

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

    print_base(num, base);
    return 0;
}

Solving Approach

 

 

 

Was this helpful?
Upvote
Downvote