codice:
#include <stdio.h>

char* formatHex (unsigned short input, char *hexstr)
{
    int i;
    unsigned short d;

    for (i = 0; i < 4; i++)
    {
        d = input & 0xF;
        hexstr[3-i] = (char) (d > 9 ? d+'A'-10 : d+'0');
        input >>= 4;
    }

    hexstr[4] = '\0';
    return hexstr;
}

int main (void)
{
    unsigned short n = 29611;     /* 73AB in hex */
    char buf[5];

    printf ("%s\n", formatHex (n, buf));
    return 0;
}