快速判断是数字字符还是英文字符

问:(c >> 6 & 1) * 2 - 1是什么意思?

答:对于任意小写/大写英文字母字符,其 ASCII 码的二进制都形如 01xxxxxx;对于任意数字字符,其 ASCII 码的二进制都形如 0011xxxx。

根据这一特点,可以根据二进制从低到高第 6 位(设二进制最低位是第 0 位)是 0 还是 1 来判断:如果是 1 就是小写/大写英文字母字符,如果是 0 就是数字字符。把字符的二进制右移 6 位再 AND 1 就可以得到这个比特值。然后再通过 ×2−1 的操作,把 1 转换成 1,0 转换成 −1。

(虽然好像没什么大用。。。。。。顺便骂一下自己,说好昨天写的,又拖到了今天晚上!)

posted @ 2025-12-03 21:51  Sunstreamy  阅读(0)  评论(0)    收藏  举报