#include <stdio.h> #include <stdint.h> void print_base(uint16_t num, uint8_t base) { if( base == 2){ uint8_t byte = num; if((byte >> 4) & 0xf){ for(int i = 7; i >= 0; i--){ printf("%d", (byte >> i) & 1); } } else if(byte & 0xf){ for(int i = 3; i >= 0; i--){ printf("%d", (byte >> i) & 1); } } else{ printf("%d", 0); } } else{ uint16_t byte2 = num; printf("%X", byte2); } } 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