Is it possible to make this code more efficient & elegant? int HexToDecimal(char ch){    ch = tolower(ch);    if ('a' <= ch && ch <= 'f')    {        return ch - 'a' + 10;    }    else if ('0' <= ch && ch <= '9')    {        return ch - '0';    }    printf(Error\n);    return 0;}Update: Printing error could be ignored. By returning 0 I only mean to show that the input char is not a hex digit.
Converting hex character to decimal
c++;converting
From memory (I haven't checked it) this should be the most efficient in terms of speed at the cost of a small increase in memory footprint.Note that it does not repeat your printf(Error\n) smell.return\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 // <nul> ... <si>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 // <dle> ... <us>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 // ' ' ... '/'\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x00\x00\x00\x00\x00\x00 // '0' ... '?'\x00\x0a\x0b\x0c\x0d\x0e\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00 // '@' 'A' ... 'O'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 // 'P' ... 'Z' ... '_'\x00\x0a\x0b\x0c\x0d\x0e\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00 // '`' 'a' ... 'o'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 // 'p' ... 'z' ... '~' <del>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 /// Accented/Extended\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00[c];AddedApologies for not being clear. This solution is not better than the original, just different and provably faster. I would use the originally posted code in all cases except when maximum speed is critical and only then after careful deliberation.I posted this for completeness, it is not elegant in any way, it is only more efficient ... almost brutally so.