【发布时间】:2010-03-23 10:18:37
【问题描述】:
我正在编写一个字符串解析器,我想到可能有一些非常有趣的方法可以将 ASCII 十六进制字符 [0-9A-Fa-f] 转换为它的数值。
将[0-9A-Fa-f] 转换为0 和15 之间的值的最快、最短、最优雅或最晦涩的方法是什么?
如果您愿意,假设该字符是有效的十六进制字符。
我没有机会,所以我会在最无聊的时候尝试一下。
( c <= '9' ) ? ( c - '0' ) : ( (c | '\x60') - 'a' + 10 )
【问题讨论】:
-
任何特定的语言?
-
我在玩 C,但请随意。