#include <stdio.h>
#include <stdint.h>
#include <math.h>
void print_base(uint16_t num, uint8_t base) {
if (base == 2) {
if (num < 2) {
printf("%d", num);
} else {
int l = log2(num);
for (int i = l; i >= 0; i--)
printf("%d", (num >> i) & 1);
}
} else {
int l = 0;
if (num >= 4096) {
l = 3;
} else if (num >= 256) {
l = 2;
} else if (num >= 16) {
l = 1;
}
for (int i = l; i >= 0; i--) {
int tmp = (num >> i*4) & 0xF;
if (tmp < 10) {
printf("%d", tmp);
} else {
printf("%c", 'A' + tmp - 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