#include <stdio.h> #include <stdint.h> void print_hex(uint16_t num) { uint8_t leading_zero = 1; for (int shift = 12; shift >= 0; shift -= 4) { uint8_t nibble = (num >> shift) & 0xF; if (nibble == 0 && leading_zero) continue; leading_zero = 0; char ch; if (nibble < 10) ch = '0' + nibble; else ch = 'A' + (nibble - 10); putchar(ch); } if (leading_zero) // number was zero putchar('0'); } int main() { uint16_t num; scanf("%hu", &num); print_hex(num); return 0; }
Test Cases
Test Results
Input
255
Expected Output
FF