字符与数字转换问题
字符减‘0’就可以得到相应的数字,数字加‘0’即可得到相应的字符。
计算机中的字符包括数值、英文字母、标点符号、制表符号及其他符号,每一个字符都用一个特定的二进制代码来表示,这就是字符的编码。
目前,字符编码采用的是美国信息交换标准代码,即ASCII 码 。它是用一个字节的低七位来表示一个字符的编码, 27 =128 ,最高位是 0 ,所以,用 ASCII 码可表示 128 个字符。只要我们自己在程序中输入一个字符(例如:‘a’),计算机就会在编译过程中自动将它转换成它对应的二进制码(97),这就是为什么说字符本质上也是整型了,因为字符变量只是告诉计算机,我这个数据只占一个字节,也就是说我超不出128这个数去。而int则告诉我这个数可能很大,有65534那么大。
我们注意到字符型常量用‘ ’括起来,原因是它们在计算机中用各自的ASCII码表示,在ASCII码里‘0’对应的刚好是48的二进制码,比如我们要得到数字1,而‘1’的ASCII码是49,在转换的时候只需要‘1’ - ‘0’=1;就可以了。数字的ASCII码是按顺序规定的,所以其它字符要转换成数字都可以用减’0’来表示。
大小写字母的转换:先看ASCII码:a ~ z是97 ~ 122的二进制编码,而A ~ Z是65 ~ 90的二进制编码,于是我们就得出:大写字母 = 小写字母 - 32 ;这个公式了。当然这里的32我也可以这么写‘Z’=‘z’ - ‘空格’,因为空格的ASCII码是32对应的二进制编码。