#include <stdio.h>
#include <stdint.h>
void print_base(uint16_t num, uint8_t base) {
// Your logic here
int bits,i;
char hex[5];
uint8_t extracted;
if (base==2 && num>0){
if(num>255) bits=16;
else if(num<=255 && num>=16) bits=8;
else if (num<16) bits=4;
for(i=bits-1;i>=0;i--){
printf("%d",(num>>i)&0x01);}
}
else if(base==16 && num>0){
if(num>255) bits=4;
else bits=2;
for(i=bits-1;i>=0;i--){
extracted =((num>>i*4)&0x0f);
if (extracted < 10)
printf("%c", extracted + '0');
else
printf("%c", extracted - 10 + 'A');}
}
if (num==0) printf("%d",num);
}
int main() {
uint16_t num;
uint8_t base;
scanf("%hu %hhu", &num, &base);
print_base(num, base);
return 0;
}
Input
10 2
Expected Output
1010