先看这个*index ,这是一个索引,利用这个索引可以方便的求出字符串中的某一个数字的int值,比如一个字符串中的3,我们首先现在index中搜索,找到匹配它的地址,然后减去首地址,这样3这个int值就会求出来,当然,前提是索引必须有顺序。。然后看看那个移位异或操作,先是求出字符的int值,由于这个int值是16进制的,所以移位的时候不像是2进制那样移一次,这样需要移四次,所以有那个移动*4,为什么还需要乘以长度减一减索引i呢,由于每一个所求的字符都是不同位的,需要还原位,假设这个要转换的字符串是5位,那么它的第一个字符理应当在最高位,我们直接移动的时候需要移动4位,步长是刚才的*4,以此类推,就有第二个字符移动3位,正好,用刚才字符串长度-1 再减去索引 i 刚好就是那个值,所以我们用这个来移动,就可以达到求出每一个字符在这个要转换的字符串中的十六进制值得大小,最后需要把求出的所有加起来也就是合并这些转换后的,所以用异或,因为基本都是0101,需要把1合并,恰恰1对应的那位又是0,所以用异或,其实或也是可以的