siIsHexDigit
int siIsHexDigit(char a);
siIsHexDigit(*(buffer)) ? *(buffer) : ' ',
siIsHexDigit(*(buffer+1)) ? *(buffer+1) : ' ',
siIsHexDigit(*(buffer+2)) ? *(buffer+2) : ' ',
siIsHexDigit(*(buffer+3)) ? *(buffer+3) : ' ',
siIsHexDigit(*(buffer+4)) ? *(buffer+4) : ' ',
siIsHexDigit(*(buffer+5)) ? *(buffer+5) : ' ',
siIsHexDigit(*(buffer+6)) ? *(buffer+6) : ' ',
siIsHexDigit(*(buffer+7)) ? *(buffer+7) : ' ',
siIsHexDigit(*(buffer+8)) ? *(buffer+8) : ' ',
siIsHexDigit(*(buffer+9)) ? *(buffer+9) : ' ',
siIsHexDigit(*(buffer+10)) ? *(buffer+10) : ' ',
siIsHexDigit(*(buffer+11)) ? *(buffer+11) : ' ',
siIsHexDigit(*(buffer+12)) ? *(buffer+12) : ' ',
siIsHexDigit(*(buffer+13)) ? *(buffer+13) : ' ',
siIsHexDigit(*(buffer+14)) ? *(buffer+14) : ' ',
siIsHexDigit(*(buffer+15)) ? *(buffer+15) : ' ')
siIsHexDigit(*(buffer)) ? *(buffer) : ' ',
siIsHexDigit(*(buffer+1)) ? *(buffer+1) : ' ',
siIsHexDigit(*(buffer+2)) ? *(buffer+2) : ' ',
siIsHexDigit(*(buffer+3)) ? *(buffer+3) : ' ',
siIsHexDigit(*(buffer+4)) ? *(buffer+4) : ' ',
siIsHexDigit(*(buffer+5)) ? *(buffer+5) : ' ',
siIsHexDigit(*(buffer+6)) ? *(buffer+6) : ' ',
siIsHexDigit(*(buffer+7)) ? *(buffer+7) : ' ',
siIsHexDigit(*(buffer+8)) ? *(buffer+8) : ' ',
siIsHexDigit(*(buffer+9)) ? *(buffer+9) : ' ',
siIsHexDigit(*(buffer+10)) ? *(buffer+10) : ' ',
siIsHexDigit(*(buffer+11)) ? *(buffer+11) : ' ',
siIsHexDigit(*(buffer+12)) ? *(buffer+12) : ' ',
siIsHexDigit(*(buffer+13)) ? *(buffer+13) : ' ',
siIsHexDigit(*(buffer+14)) ? *(buffer+14) : ' ',
siIsHexDigit(*(buffer+15)) ? *(buffer+15) : ' ')