字符与字符串(计算机组成原理9)

    科技2022-07-13  124

    字符与字符串

    视频链接地址: https://www.bilibili.com/video/BV1BE411D7ii?from=search&seid=6420326887479343502

    计算机组成原理 系列文章目录

    字符与字符串前言1 英文字符2 汉字3 字符串4 小结

    前言

    在本篇中,你将掌握

    英文ASCII码与中文GB 2312-80字符串的存储方式

    1 英文字符

    英文在计算机里的表示方法就是ASCII码,键盘上的字母+数字+符号共128个字符只需要7个二进制(128个字符)编码即可。但为了存入计算机,通常在最高位补0,凑足1B(1Byte = 8 bit)。

    上表即为ASCII码表,0-127,在表中可以发现: 可印刷字符:32~126,其余为控制、通信字符。

    可印刷字符就是我们平时能打出来的字符;控制字符如127DEL,Delete删除字符,控制计算机执行某一种行为;通信字符,如6ACK,当两台计算机进行网络通信的时候,其中一台计算机收到另一台计算机发来的报文,需要回复一条ACK讯号。 可印刷字符起始终止数字48(0011 0000)57 (0011 1001)大写字母65(010 00001)90(010 11010)小写字母97(011 00001)122(011 11010)

    对于可印刷字符,值得注意的是:   在数字中,二进制编码的前四位均为0011,后四位为0000-1001的与之对应的8421编码;   在大写字母中,前三位均为010,后五位为00001-11010的 1-26 的二进制码;   在小写字母中,前三位均为011,后五位为00001-11010的 1-26 的二进制码。 且所有的数字、大写字母、小写字母的ASCII码值都是连续的   

    对于上述规律会有这样的问题 例:已知’A‘的ASCII码值为65,字符’H‘存放在某存储单元M中,求M中存放的内容。

      答:该问题其实就是根据A的ASCII码推出H的ASCII码(二进制形式),A是第1个字母,H是第8个字母,因此H的码值 = 65 + 7 = 72,72再翻译成二进制就是100 1000,故M中存放的内容为0100 1000。第二种解法便是利用上述的大写字母规律,前三位均为010,后五位为00001-11010的二进制码。

    2 汉字

    对于英文字符和一些所需的符号,128个字符就足够英文的使用了,所以在计算机里保存英文只需要8bit(其实7bit就可以)。但对于中文来说,若算上生僻字等快7万多个字符。若要保存几万个字符,8bit显然是不够的,8bit最多只能对应256个字符。 因此,在1980年,我国推出了一个汉字编码标准 G B 2312 − 80 : 汉 字 + 各 种 符 号 共 7445 个 GB 2312-80:汉字+各种符号共7445个 GB231280+7445

    为存储更多的字符,因此在最开始,使用了区位码的方式进行存储,即94行94列的区位表示,但用这种0-93 * 0-93的方法存储会与英文ASCII码中的控制、通信字符有冲突,因此+32(20H),即32-125 * 32-125的国标码;但为了避免和英文的ASCII码冲突,还需要在国标码基础上加上128(80H) ,从而得到汉字内码(汉字机内码)。一个汉字占两个字节,但汉字的任何一个字节都是大于128的。所以当计算机读入一个字节的数据是大于128的,就说明将读入的是由两个字节组成的汉字

    输入:输入编码(如拼音,输入法) 输出:汉字字形码

    输入编码会先变成国标码,再变成汉字内码;输出的汉字字形码就是用二进制表示的“手写数字识别版”的用1表示显示用0表示不显示的二进制数组(图片)。

    3 字符串

    对于英文字符的存储,如上图,依次存储对应字母的ASCII编码,且在结尾处加\0,即00H

    对于中文字符的存储,如上图,因为存储中文字符需要两个字节,因此也就有了两种存储模式:   大端模式:将数据的最高有效字节存放在低地址单元中   小端模式:将数据的最高有效字节存放在高地址单元中

    4 小结

    本篇重点,ASCII码的编码方式和规律,对于汉字编码了解即可,字符串的存储方式。

    Processed: 0.012, SQL: 8