If we test for {0..9} first, we have tested for 10/16th of all possible
characters first and avoid testing the remaining 6/16th of all possible
characters, which can be either 6/16th lowercase or 6/16th uppercase.
Signed-off-by: Joe Da Silva <digital@joescat.com>
static int convert(uint8_t x)
{
- if (x >= 'a')
- x -= 87;
- else if (x >= 'A')
- x -= 55;
- else
+ if (x <= '9')
x -= '0';
+ else if (x >= 'a')
+ x -= ('a' - 10);
+ else
+ x -= ('A' - 10);
return x;
}