计算机中ASCII码常见的信息编码(1)BCD码(二到十进制编码)人们通常习惯使用十进制数,而计算机只能识别0和1,内部采用二进制表示和处理数据,因此在计算机输入和输出数据时,就要进行由十进制到二进制的转换处理。把十进制数的每一位分别写成二进制形式的编码,称为二进制编码的十进制数,即BCD码(BinaryCodedDecimal)编码。BCD码编码方法很多,通常采用8421编码,这种编码方法最自然简单。它使用四位二进制数表示一位十进制数,从左到右每一位对应的权分别是23、22、21、20,即8、4、2、1。例如十进制数1975的8421码可以这样得出。例如十进制数19758421编码00011001011101011975(D)=0001100101110101(BCD)用四位二进制表示一位十进制会多出6种状态,这些多余状态码称为BCD码中的非法码。BCD码与二进制之间的转换,要先将BCD码转换成十进制码,然后再转换成二进制码;当需要将二进制转换成BCD码时,要先将二进制转换成十进制码,然后再转换成BCD码。(100100100011.0101)BCD=(923.5)D=(1110011011.1)B十进制BCD码00000100012001030011401005010160110701118100091001(2)ASCⅡ码美国标准信息交换代码(ASCII码,AmericanStandardCodeforInformationInterchange)。每个字符用7位二进制数编码,国际上通用的字符编码是ASCII(AmericanStandardCodeforInformationInterchange)码.用7位二进制表示字符的一种编码,使用一个字节表示一个特殊的字符,字节高位为0或用于在数据传输时的校验。参见25页的代码表。控制字符34个,阿拉伯数字10个,大小写英文字母52个,标点符号和运算符32个。(共128个)西文字符:ASCII码(美国标准信息交换代码的简称,128个字符)扩展ASCII码(256个字符,前128个字符同标准ASCII)每个字符占1个字节例如:数字“0”的ASCII为48打写英文字母“A”的ASCII为65“空格”的ASCII为32•ASCII码表记忆:“0”的ASCII码是30H,“A”的ASCII码是41H,“a”的ASCII码是61H。返回ASCII码的大小规则(3)汉字编码是为了汉子设计的一种便于输入计算机的代码。•国家标准信息交换用汉字编码(GB2312-80),简称为国标码,字符集中的每个字符都被指定了一个双7位的二进制编码。中文字符:GB2312-80(国标码、简体汉字编码)•一级汉字3755个,二级汉字3008个,图形符号682个•每个汉字占2个字节,前面一个字节为区号,后面一个字节为位号,共分87区,每区94位。•汉字也是字符•缺点:•数量大(6万个)•字形复杂(1-36笔,平均为9.8笔)•同音字多。•编码比拼音文字困难,因此在不同的场合要使用不同的编码。•通常有4种类型的编码,即输入码、国标码、机内码、字形码。(3)汉字编码汉子进入计算机的三种途径:1、自动识别扫描2、语音识别3、编码输入①输入码(外码)输入码所解决的问题是如何使用西文标准键盘把汉字输入到计算机内,就是指将汉子输入到计算机中的一组键盘符号。有各种不同的输入码,主要可以分为三类:数字编码、拼音编码和字型编码。●数字编码:就是用数字串代表一个汉字,常用的是国标区位码。(区位码)●拼音编码:是以汉字读音为基础的输入方法。由于汉字同音字太多,输入后一般要进行选择,影响了输入速度。●字形编码:是以汉字的形状确定的编码。如五笔字型、表形码,便属此类编码,其难点在于如何拆分一个汉字。●音形结合码:②国标码(机内码)每一个汉子都有确定的二进制代码1980年,《信息交换用汉字编码字符集-基本集》,简称GB2312-80。收录6763个常用汉字和682个非汉字字符,其中一级汉字3755个,以汉语拼音为序排列,二级汉字3008个,以偏旁部首进行排列。所有汉字与符号组成94×94的矩阵,每一行为一个“区”(区号为01~94),每一列为一个“位”(位号为01~94)。94个区,每个汉字占一个位。③机内码汉字内码是在设备和信息处理系统内部存储、处理、传输汉字用的代码。无论使用何种输入码,进入计算机后就立即被转换为机内码。英文字符的机内码用一个字节来存放ASCII,一个ASCII占一个字节的低7位,最高位为“0”汉字机内码用两个字节,最高位均为“1”如“中”,国标码为5650H(0101011001010000)B,机内码为D6D0H(1101011011010000)B•GB2312•-80•汉字编码返回④字形码表示汉字字形的字模数据,因此也称为字模码,是汉字的输出形式。通常用点阵、矢量函数等表示。用点阵表示时,字形码指的就是这个汉字字形点阵的代码。根据输出汉字的要求不同,点阵的多少也不同。简易型汉字为1616点阵、提高型汉字为2424点阵、4848点阵等。现在我们以2424点阵为例来说明一个汉字字形码所要占用的内存空间。因为每行24个点就是24个二进制位,存储一行代码需要3个字节。那么,24行共占用324=72个字节。计算公式:每行点数/8行数。依此,对于4848的点阵,一个汉字字形需要占用的存储空间为48/848=648=288个字节。•点阵汉字模0100100000000100011111011111111001001000000001000101000000100100010100011111010001100001001001000101000100100100010010010010010001001001001001000100010111100100011010010010010001011000000001000100000000000100010000000011010001000000000010000000000000000000汉字字模点用的存储空间16X16点阵:32字节/汉字;24X24点阵:72字节/汉字;32X32点阵:128字节/汉字;48X48点阵:288字节/汉字。返回矢量方式存储的是描述汉字字形的轮廓特征。点阵和矢量方式区别:点阵特点编码、存储方式简单、无需转换直接输出,但字形放大后产生的效果差,而且同一种字体不同的点阵需要不同的字库;矢量方式特点正好与点阵相反。例如下图中显示的“汉”字,使用16×16点阵。字模中每一点使用一个二进制位(Bit)表示,如果是1,则说明此处有点,若是0,则说明没有。这样,一个16×16点阵的汉字总共需要16*16/8=32个字节表示。汉字编码字符代码机内码字形码转换(输入码)转换汉字编码•汉字输入码•汉字国标码•机内码•汉字字形码•汉字地址码•其它汉字编码输入码国标码字形码机内码地址码汉字输出汉字输入•字符编码•西文字符:•ASCII码(美国标准信息交换代码的简称,128个字符)•扩展ASCII码(256个字符,前128个字符同标准ASCII)每个字符占1个字节•中文字符:GB2312-80(国标码、简体汉字编码)•一级汉字3755个,二级汉字3008个,图形符号682个•每个汉字占2个字节,前面一个字节为区号,后面一个字节为位号,共分87区,每区94位。ASCII表区位码表•汉字的内码:•存储、传输、处理所用的汉字编码。如国标码、BIG5(繁体汉字编码)等•汉字外码:•输入/输出所用汉字编码。又分:•汉字的输入码:拼音、五笔字型、区位码等•汉字的输出码:点阵字库、失量字库等汉字点阵字模区位码、国标码、机内码之间的转换区位码的区号和位号分别加上十进制的32,再将区号和位号分别转换为十六进制,即可得到该汉字的国标码。(注意:区号和位号为十进制数)国标码=(区号+32)16&(位号+32)16十六进制的国标码加上十六进制的8080,即为该汉字的机内码。机内码=国标码+(8080)16例如:“啊”的区位码为1601区号16+32=(48)10=(30)16位号01+32=(33)10=(21)16国标码=(3021)16机内码=国标码(3021)16+(8080)16=(B0A1)16习题•(1)为什么在计算机中数据几乎全部采用二进制表示?•(2)十进制数转换为非十进制数,整数部分和小数部分应分别遵守什么转换规则?•(3)什么是定点数?什么是浮点数?浮点数在计算机中是如何表示的?•(4)什么是ASCII码?从ASCII码表中找出大、小写英文字母与数字编码的规律。