if(dat >= 0x30 && dat <= 0x39) { return (dat - 0x30); }else if(dat >= 0x41 && dat <= 0x46)

if(dat >= '0' && dat <= '9') { return (dat - '0'); }else if(dat >= 'A' && dat <= 'F')

I relatively, or with a bit of maths, know the value used.