对ASCII码的总结(附对照表)
关于ASCII码的总结
(附字母、数字、符号等的ASCII码对照表)
1>ASCII码采⽤⼀个字节表⽰⼀个字符,其中前128个ASCII(0~127)为标准ASCII字条,第7位为0,⾼位为1的128个ASCII是扩展ASCII符.(我们平常使⽤的基本都在标准字符内.)
2>ASCII码分4组
第⼀组: 0~1FH,这是⼀组控件字体,回车CR的ASCII为0DH,⽤来控件光标回到当前⾏的最左端;换⾏LF的ASCII为0AH,⽤来移动光标到下⼀⾏,⽽所在列不变;响铃BEL的ASCII为07H;NULL的ASCII为0.(注意,这⾥的回车与我们平常编辑⽂件时的回车不⼀样,这⾥的回车相当于完成了Home键的功能,仅仅是将资材放到了⾏⾸,如果要换⾏,还要⽤0AH,能也就是0AH和0DH加起来才完成了我们平常概念上回车健所完成的功能.)
第⼆组:20H~3FH,20H为空格;30H~39H为数字的'0'~'9'.(注意这⾥的'0'~'9'是加了单引号的,这是⼀个字符,并⾮数值,数值0加上⼀个30H便可以得到⼀个字符'0',⽽数值0所表⽰的ASCII码字符为NULL,这是⼀个怎样的转换?如果说我在屏幕上输⼊⼀个"数"0,然后,我要它和另外⼀个数⽐如说10作⼀个运算,然后,
将结果输出在屏幕上,⾸先,必须明确的是,屏幕上输出的都是字符,也就是说,我们在屏幕上看到的10,在我们看来是⼀个数值10,但在计算机看来是⼀个字符串10(这⾥应当读作壹零,也就是说这个10和我们在屏幕上看到的字符串ab是⼀个性质的),⼤概是因为C语⾔中printf和scanf函数已经在其库函数中,帮我们做
好了其中的转换⼯作,以致于我们将程序的输出结果看成了⼀个数值.再回到上⾯,我们在屏幕上输⼊⼀个数0,这个时候,我们输⼊了⼀个字符'0',然后,系统会到其对应的ASCII码30H存放到⽐如说是eax中,下⾯,我们就要⽤我们输⼊的字符'0'来完成与10相加的操作,显然,如果直接add eax,10d 那么,显然,我们等到的并不是我们想到的数值10,⽽是另外⼀个数,所以说,我们作运算的时候要先将eax中的值减去30H,得到我们真正想输⼊的数值0,然后,再⽤这个数值0和数值10与作运算(这⾥假定10是初始化的时候已经定义好了的),作完运算之后,我们要将结果在屏幕上输出,如果直接输出,显然也是不会有结果的,因为机器会输出10所对应的ASCII码,所以,当我们要输出的时候,就必须⽤这个10加个⼀个30H,⽅能在屏幕上输出⼀个我们想到的10,⽽其实这个10乃是⼀个字符串,这个理解上的转折应该是C语⾔造成的,C语⾔帮我们封装好了这⼀过程,以致于我们总以为屏幕上输出的都是数字,其实不然.)
第三组: 40H~5FH,对应了26个⼤写的英⽂字母和6个专⽤字符.其中
41H~5AH表⽰'A'~'Z',40H表⽰@....
第四组: 60H~7FH,对应了26个⼩写的英⽂字母和5个专⽤字符,1个控件字符.其中61H~7AH表⽰'a'~ 'z'
观察:
A:0100,0000 B:Y:0101,1001 Z:0101,1010
a:0110,0000 b: y:0111,1001 z:0111,1010
也就是说,⼤⼩写字母的ASCII码就第5位是不同(⼩写字母第5位是1,⼤写字母是0),如果相减就正好留下第5位,即20H
附:常⽤ASCII码对照表
>printf直接输出数字
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论