#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; }
Test Cases
Test Results
Input
10 2
Expected Output
1010