Я пишу анализатор строк, и мне пришла в голову мысль, что могут быть действительно интересные способы преобразования шестнадцатеричного символа ASCII [0-9A-Fa-f]
в его числовое значение.
Каковы самые быстрые, самые короткие, самые элегантные или самые непонятные способы преобразования [0-9A-Fa-f]
в его значение между 0
и 15
?
Предположим, если хотите, что символ является допустимым шестнадцатеричным символом.
У меня нет шансов, поэтому я попробую самый скучный.
( c <= '9' ) ? ( c - '0' ) : ( (c | '\x60') - 'a' + 10 )