#include <stdio.h>
#include <stdint.h>
void print_base(uint16_t num, uint8_t base) {
if(num == 0){
putchar('0');
return;
}
if(base == 2){
bool binState = false;
for(int i = 15; i >= 0; i--){
if(((num >> i) & 1U) || binState){
binState = true;
putchar(((num >> i) & 1U) + '0');
}
}
}else if(base == 16){
for(int i = 3; i >= 0; i--){
uint8_t nibble = ((num >> (i * 4)) & 0x0F);
if(nibble){
putchar(nibble > 10 ? 'A' + nibble - 10 : '0' + nibble);
}
}
}
}
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