#include <stdio.h>
#include <stdint.h>
void print_binary_format(uint16_t num)
{
if(num == 0)
{
printf("0\n");
}
char bits[17];
int end = 15;
while(num > 0)
{
bits[end] = (num & 1U) ? '1' : '0';
end--;
num >>= 1;
}
bits[16] = '\0';
printf("%s\n", &bits[end+1]);
}
char getHex(uint8_t value)
{
if(value >=0 & value <= 9)
{
return '0' + value;
}
else
{
return 'A' + (value - 10);
}
}
void print_hex_foramt(uint16_t num)
{
char hex[5];
for(int i=0; i<4; i++)
{
hex[i] = '0';
}
hex[4] = '\0';
uint8_t end = 3;
while(num > 0)
{
char temp = getHex(num & 0xF);
hex[end] = temp;
end--;
num >>= 4;
}
printf("%s \n", &hex[end+1]);
}
void print_base(uint16_t num, uint8_t base) {
// Your logic here
if(base == 2)
{
print_binary_format(num);
}
else if(base = 16)
{
print_hex_foramt(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