#include <stdio.h>
#include <stdint.h>
void print_base(uint16_t num, uint8_t base) {
// Your logic here
if(base == 2){
int flag=0;
uint8_t ex=0;
int i;
if(num == 0) printf("0");
for(i=7;i>=0;i--){
if((((num>>i) & 0x01) == 0 )&& flag == 1) printf("0");
if((num>>i) & 0x01 == 1) {
flag = 1;
printf("1");
}
}
}
else if(base == 16){
int ex1 =0;
int ex2 =0;
ex1 = num & 0x0F;
ex2 = num & 0xF0;
ex2 = ex2>>4;
char hex;
hex = (ex2<10)? ('0' + ex2): ('A'+ (ex2-10));
printf("%c",hex);
hex = (ex1<10)? ('0' + ex1): ('A'+ (ex1-10));
printf("%c",hex);
}
}
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