好家伙,十几年过去了,没一个答到点子上的。这是ASCII码的设计精妙所在。因为大写字母 A-Z :[65,90],小写字母a-z:[97-122];观察他们的二进制可以发现,65=100000190=101101097=1100001122=1111010发现了什么?大写转小写需要+32,而65-90表示32的那一位bit始终为0,所以+32可以转化为|32。计算机底层只有位运算,所有的基本运算最终都会被解释成位运算,所以+32直接用|32替换,可以提升效率。P.S. 大写变小写、小写变大写 : 字符 ^= 32;大写变小写、小写变小写 : 字符 |= 32;小写变大写、大写变大写 : 字符 &= -33;