#include <stdio.h>
#include <stdint.h>
void print_hex(uint16_t num) {
char hex[5]; // max 4 hex digits + null terminator
int i = 0;
if (num == 0) {
putchar('0');
return;
}
while (num > 0) {
uint8_t digit = num & 0xF; // extract last 4 bits (hex digit)
if (digit < 10)
hex[i++] = '0' + digit;
else
hex[i++] = 'A' + (digit - 10);
num >>= 4; // move to next nibble
}
// print in reverse order
while (i > 0) {
putchar(hex[--i]);
}
}
int main() {
uint16_t num;
scanf("%hu", &num);
print_hex(num);
return 0;
}
Input
255
Expected Output
FF