首先分析一下,我们知道同一个字母的大写字符和小写字符对应的ASCII码是不同的,比如“A”ASCII码事41H,“a”ASCII码是61H

大写

十六进制

二进制

小写

十六进制

二进制

A

41

01000001

a

61

01100001

B

42

01000010

b

62

01100010

C

43

01000011

c

63

01100011

D

44

01000100

d

64

01100100

E

45

01000101

e

65

01100110

通过对比,外面可以看出来,小写字母的ASCII码值比大写字母的ASCII码值大20H。这样如果将“a”ASCII码值减去20H,就够可以得到“A”。这里面就存在着一个前提,程序必须要要能够判断资格字母是大写还是小写。

ASCII码的二进制形式来看,除第5位外,大写字母和小写字母的其他各位都一样。大写之母ASCII码的第五位为0,小写之母的第5位为1。这样将第五位0变为11变为0就实现了大小写的转换。字母与11011111B(223)转换为大写,字母或00100000B(32)转换为小写。