ASCII码,它是American Standard Code for Information Interchange的缩写(美国标准信息交换代码),已被国际标准化组织ISO采纳,作为国际通用的信息交换标准代码。
一 ASCII码诞生背景
在计算机中,所有的数据在存储和运算时都要使用二进制表示。例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,这就是编码。值得注意的是编码是信息从一种形式转换为另一种形式的过程;解码则是编码的逆过程。
不同的计算机要想互相通信并且不造成混乱,那么每台计算机就必须使用相同的编码规则,于是美国国家标准学会(American National Standard Institute,ANSI)制定了ASCII编码。
二 ASCII码特性
① ASCII码是一种西文机内码。
美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准 ISO/IEC 646。
②有7位ASCII码和8位ASCII码两种。
•标准ASCII 码也叫标准ASCII(基础ASCII码),标准ASCII码用一个字节(8位)表示一个字符,并规定其最高位为0,实际只用到7位,码值为00000000~01111111,即 0~127。因此可表示 128 个不同字符 。标准 ASCII 码包括数字 0~9、 26 个大写英文字母、 26 个小写英文字母,以及各种标点符号、运算符号和控制命令符号等。其中:
•0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符)
•32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
•65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
表1 ASCII表控制字符
通过表1,在ASCII表中,可以看出,0~31及127(共33个)是控制字符或通信专用字符。
表2 ASCII表可显示字符
通过表2,在ASCII表中,可以看出,32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
③EASCII(Extended ASCII,延伸美国标准信息交换码)扩展 ASCII 码用 8 位表示,最高位为 1, 表示的码值范围为 10000000~11111111,即 128~255。 因此也可表示 128个不同字符。EASCII码比ASCII码扩充出来的符号包括表格符号、计算符号、希腊字母和特殊的拉丁符号。
④同一个字母的ASCII码值小写字母比大写字母大32(20H)
表3 ASCII表英文字符
通过表3,在ASCII表中,可以看出同一个字母的ASCII码值小写字母比大写字母大32。
⑤ASCII 码值的大小比较:空格 < 数字 < 大写字母 < 小写字母
三 ASCII码缺点
ASCII的局限在于只能显示26个基本拉丁字母、阿拉伯数字和英式标点符号,因此只能用于显示现代美国英语(且处理naïve、café、élite等外来语时,必须去除附加符号)。虽然EASCII解决了部分西欧语言的显示问题,但对更多其他语言依然无能为力。因此,现在的软件系统大多采用Unicode,特别是与ASCII向下兼容的UTF-8。
示例:
1020:打印ASCII码时间限制: 1000 ms 内存限制: 65536 KB 提交数: 87851 通过数: 67159 【题目描述】输入一个除空格以外的可见字符(保证在函数scanf中可使用格式说明符%c读入),输出其ASCII码。 【输入】一个除空格以外的可见字符。 【输出】一个十进制整数,即该字符的ASCII码。 【输入样例】A 【输出样例】65 |
示例代码:
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
char a;
cin>>a;
cout<<int (a);
return 0;
}
执行结果:
A
65
--------------------------------
Process exited after 1.75 seconds with return value 0
请按任意键继续. . .
示例代码2:
1021:打印字符
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 75599 通过数: 62300
【题目描述】
输入一个整数,即字符的ASCII码,保证存在对应的可见字符。输出相对应的字符。
【输入】
一个整数,即字符的ASCII码,保证存在对应的可见字符。
【输出】
一行,包含相应的字符。
【输入样例】
65
【输出样例】
A
代码示例2:
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
int a;
cin>>a;
cout<<char (a);
return 0;
}