大小写字母的ASCII码差别在于大写字母二进制形式的第5位(从0开始)均为0,小写的均为1,所以只要将任一个字母二进制码的第5位转为0 / 1,就能将其转化为大 / 小写。
;-----------------
;汇编:大小写的转化
;-----------------
mov al,letter
and al,11011111B ;转大写
or al,00100000B ;转小写
将这个思路运用在C中
/*
C:大小写转化
*/
char ch1 = 'a', ch2 = 'A';
ch1 = ch1 & 0xDF; //转大写
ch2 = ch2 | 0x20; //转小写