问:(c >> 6 & 1) * 2 - 1是什么意思?
答:对于任意小写/大写英文字母字符,其 ASCII 码的二进制都形如 01xxxxxx;对于任意数字字符,其 ASCII 码的二进制都形如 0011xxxx。
根据这一特点,可以根据二进制从低到高第 6 位(设二进制最低位是第 0 位)是 0 还是 1 来判断:如果是 1 就是小写/大写英文字母字符,如果是 0 就是数字字符。把字符的二进制右移 6 位再 AND 1 就可以得到这个比特值。然后再通过 ×2−1 的操作,把 1 转换成 1,0 转换成 −1。
(虽然好像没什么大用。。。。。。顺便骂一下自己,说好昨天写的,又拖到了今天晚上!)