2.1 数制与编码 数据是计算机处理的对象,数据在计算机中是否能得到正确的表示和理解是其他操作的基础。在
2.1.4 字符与字符串
由于计算机内部只能识别和处理二进制代码,所以字符和汉字也必须按照一定的规则用一组二进制编码来表示。这就要求对字符和汉字进行编码。对字符编码方式有很多种,使用最为广泛的是美国国家信息交换标准字符码(American Standard Code for Information Interchange,ASCII)。
1.ASCII码
标准的ASCII码用7位二进制表示一个字符,它包括10个十进制数字(0~9)、52个英文大写和小写字母(A~Z, a~z)、34个专用符号和32个控制符号,共计128个字符。在128个字符中有96个是可打印字符。
在计算机中通常用一个字节(8位)来存储一个ASCII码。对于ASCII码来说,一个字节右边的7位表示不同的字符代码,而最左边一位可以作奇偶校验位,用来检查错误,也可以用于西文字符和汉字的区分标识。ASCII字符编码表如表2-2所示。
表2-2 ASCII字符编码表
b6b5b4 b3b2b1b0 |
000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
0000 | NUL | DLE | SP | 0 | @ | P | ` | p |
0001 | SOH | DC1 | ! | 1 | A | Q | a | q |
0010 | STX | DC2 | " | 2 | B | R | b | r |
续表
b6b5b4 b3b2b1b0 |
000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
0011 | ETX | DC3 | # | 3 | C | S | c | s |
0100 | EOT | DC4 | $ | 4 | D | T | d | t |
0101 | ENQ | NAK | % | 5 | E | U | e | u |
0110 | ACK | SYN | & | 6 | F | V | f | v |
0111 | BEL | ETB | ' | 7 | G | W | g | w |
1000 | BS | CAN | ( | 8 | H | X | h | x |
1001 | HT | EM | ) | 9 | I | Y | i | y |
1010 | LF | SUB | * | : | J | Z | j | z |
1011 | VT | ESC | + | ; | K | [ | k | { |
1100 | FF | FS | , | < | L | \ | l | | |
1101 | CR | GS | - | = | M | ] | m | } |
1110 | RO | RS | . | > | N | ↑ | n | ~ |
1111 | SI | US | / | ? | O | _ | o | DEL |
除标准ASCII字符编码外,许多公司还使用8位二进制编码来表示更大的字符集,如IBM公司就用8位扩展二进制编码的十进制交换码(EBCDIC码)。
2.汉字编码
汉字和拼音文字不同,拼音文字只需要定义少量的字母和符号的编码即可完成所有文字的保存、显示任务。而汉字存在大量的单字,为了让计算机能够处理汉字,必须对汉字进行单独的编码。常见的汉字编码主要有国标码、区位码、机内码和字形码等。
(1)国标码。国标码也称为汉字交换码,主要用于汉字信息处理系统之间或者通信系统之间交换信息使用。国标码GB 2312-80共收集常用汉字6763个,其中一级汉字3755个(按拼音排序),二级汉字3008个(按部首排序);各种图形符号682个,共计7445个。每个汉字、图形符号都采用两个字节表示,每个字节只使用低7位编码。可达到的最大容量是16384个。
(2)区位码。区位码将汉字编码GB2312-80中的6763个汉字分为94个区,每个区中包含94个汉字(位),区和位组成一个二维数组,每个汉字在数组中对应一个唯一的区位码。汉字的区位码定长4位,前两位表示区号,后两位表示位号,区号和位号用十进制数表示,区号从01到94,位号也从01到94。例如,“中”字在54区的48位上,其区位码为5448,“国”字在25区的90位上,其区位码为2590。
区位码表的布局是这样安排的,第1~15区包含西文字母、数字和图形符号,以及用户自行定义的专用符号(统称非汉字图形字符);第16~55区为一级汉字;第56~87区为二级汉字;87区以上为空白区,可供造新字用。
希赛教育研究生院专家提示:汉字区位码和国标码之间的关系可用以下公式表示:
国标码 = 区位码(十六进制)+2020H
(3)机内码。汉字可以通过不同的输入码输入,但在计算机内部其内码是唯一的。因为汉字处理系统要保证中西文的兼容,当系统中同时存在ASCII码和汉字国标码时,将会产生二义性。例如:有两个字节的内容为30H和21H,它既可表示汉字“啊”的国标码,又可表示西文“0”和“!”的ASCII码。为此,汉字机内码应对国标码加以适当处理和变换。
汉字机内码采用的是两个字节的编码,而每个字节的编码也只使用低7位,为了区分ASCII码,使用机内码表示时,将每个字节的最高位置为1。即:
汉字机内码 = 汉字国标码+8080H
例如,上述“啊”字的国标码是3021H,其机内码则是B0A1H。
(4)字形码。汉字字形码是指确定一个汉字字形点阵的代码,经常用于汉字的输出。在一个汉字点阵中,凡笔画所到之处,记为“1”,否则记为“0”。根据对汉字质量的不同要求,可有16×16、24×24、32×32或48×48的点阵结构,这些数据的单位都是bit。显然点阵越大,输出汉字的质量就越高,但每个汉字所占用的字节数也越高。当存储这样的汉字时,所需要的空间就越大,即需要更大的汉字库。
关于"最后阶段,真题的正确打开方式_备考经验_考研帮"有15名研友在考研帮APP发表了观点
扫我下载考研帮
最新资料下载
2021考研热门话题进入论坛
考研帮地方站更多
你可能会关心:
来考研帮提升效率