#include <stdio.h>
#include <stdint.h>
void print_base(uint16_t num, uint8_t base) {
// Your logic here
if(base == 2){
uint8_t pos = 0;
for(int i = 15; i >= 0; i--){
if((num & (1 << i)) > 0){
pos = i;
break;
}
}
for(int i = pos; i >= 0; i--){
if((num & (1 << i)) > 0){
printf("1");
}
else{
printf("0");
}
}
}
else if(base == 16){
uint8_t pos = 3;
while( pos > 0 && ((num >> (pos * 4))& 0xF) == 0){
pos--;
}
for(int i = pos ; i >= 0; i--){
uint8_t val = ((num >> (i * 4))& 0xF);
if(val < 10){
printf("%c", '0' + val );
}
else{
printf("%c", 'A' + (val - 10 ));
}
}
}
}
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