版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.1.3二进制整数编码51.4二进制小数编码5.1.5二进制补码运算5.1.1常用数制的特征5.1.2不同数制的转换[增强版]5.1.1常用数制的特征1、十进制数编码进制是按进位方式计数的数制系统。运算规则:逢十进一,借一当十。十进制中,各数字的权为10的整数次幂。【例5-1】将十进制数708按位权展开。708=7×102+8×100【例5-2】将十进制数12.34按位权方式展开。十进制数表示方式:[23]10或23D。12.34=1×101+2×100+3×10-1+4×10-2基数权数码5.1.1常用数制的特征2、二进制数编码基本符号:0、1;运算规则:逢二进一,借一当二。四则运算规则:(1)加法运算:0+0=0,0+1=1,1+0=1,1+1=10(有进位)(2)减法运算:0-0=0,1-0=1,1-1=0,0-1=1(有借位)(3)乘法运算:0×0=0,1×0=0,0×1=0,1×1=1(4)除法运算:0÷1=0,1÷1=1(除数不能为0)
101001015.1.1常用数制的特征【案例】二进制数的四则运算。5.1.1常用数制的特征【扩展】二进制数的移位运算。乘2相当于左移1位后,在尾部补0;除2相当于右移1位后,在高位补0。5.1.1常用数制的特征二进制中,数字符号的权为2的整数次幂。如,23,22,21,20,2-1,2-2……。【例5-3】将二进制数1011按位权展开。[1011]2=1×23+1×21+1×20【例5-4】将二进制数1011.0101按位权展开。[1011.0101]2=1×23+1×21+1×20+1×2-2+1×2-4二进制数用下标或在数字尾部加B表示如,[1011]2或1011B。5.1.1常用数制的特征3、十六进制数编码十六进制符号:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。运算规则:逢16进1,借1当16。计算机内部并不采用十六进制数进行运算;十六进制数是为了便于专业人员方便转换为二进制数。十六进制数用下标或在数字尾部加H表示。如:[18]16或18H;有时用前置“0x”表示十六进制数;如:0x000012A5表示十六进制数12A5。5.1.1常用数制的特征常用数制之间的关系如表5-1所示。十进制数十六进制数二进制数BCD编码000000000011000100012200100010330011001144010001005501010101660110011077011101118810001000991001100110A10100001000011B10110001000112C11000001001013D11010001001114E11100001010015F1111000101015.1.1常用数制的特征4、任意进制数的表示方法任何进位制都能用有限个数字符号表示所有数。进制称为基数,如二进制的基数为2;不同数位上的数字有不同的位权。任意R进制数,可用公式(5-1)表示:N=An-1×Rn-1+An-2×Rn-2+…+A0×R0+A-1×R-1+…+A-m×R-m
(5-1)A为任意进制数,R为基数,n为整数的位数和权,m为小数的位数和权。【例5-5】十进制数43.21按位权展开表示。43.21=4×101+3×100+2×10-1+1×10-2【例5-6】二进制数1101.11按位权展开表示。[1101.11]2=1×23+1×22+0×21+1×2-0+1×2-1+1×2-2《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.1.3二进制整数编码51.4二进制小数编码5.1.5二进制补码运算5.1.1常用数制的特征5.1.2不同数制的转换5.1.2不同数制的转换1、二进制数与十进制数之间的转换表5-2给出了2的整数次幂和十进制数值的对应关系。将二进制数各位的数乘以对应的权再累加起来。【例5-8】将[1101.101]2按位权展开转换成十进制数。[1101.101]2=[23+22+20+2-1+2-3]10
=[8+4+1+0.5+0.125]10=[13.625]102n2827262524232221202-12-22-32-4十进制数值25612864321684210.50.250.1250.06255.1.2不同数制的转换2、十进制数与二进制数转换整数部分与小数部分分开转换;整数部分采用除2取余法;小数部分采用乘2取整法。【例5-9】十进制18.8125转换为二进制数。整数除2取余,余数从低到高排列:18÷2=9余
0,9÷2=4余
1,4÷2=2余
0,2÷2=1余
0,1小于2不再除余
1;18=[10010]2;小数乘2取整,积的整数从高到低排列:0.8125×2=
1.625,0.625×2=
1.25,0.25×2=
0.5,0.50×2=
1.0;0.8125=[0.1101]2运算结果:[18.8125]10=[10010.1101]25.1.2不同数制的转换【例5-9】十进制18.8125转换为二进制数的竖式计算。5.1.2不同数制的转换【案例】十进制数100.345转换为二进制数的竖式计算。100.345D≈1100100.01011B1.3800.34520.69022
0.7602
1.520210025022521226232100010011
1.040余数达到精度要求后不再乘小数部分整数部分5.1.2不同数制的转换3、二进制数与十六进制数转换整数自右向左4位一组,不足4位时,在整数前面加0补足4位;小数自左向右4位一组,不足4位时,在小数后面加0补足4位;然后每4位二进制数对应1位十六进制数,即可得到十六进制数。【例5-10】将二进制数111101.010111转换为十六进制数。[111101.010111]2=[00111101.01011100]2=[3D.5C]1600111101•010111003D•5C5.1.2不同数制的转换4、十六进制数与二进制数转换以小数点为界,1位十六进制数对应4位二进制数。【例5-11】:将十六进制数4B.61转换为二进制数。[4B.61]16=[01001011.01100001]24B•6101001011•011000015.1.2不同数制的转换5、BCD编码数制转换存在的问题:需要进行乘法和除法运算,计算速度不快;需要进行浮点运算,存储和计算较为复杂,计算效率低。BCD码是一种二—十进制编码;BCD码用4位二进制数表示1位十进制数。8421码是最常用的BCD编码,它各位的权值为:8、4、2、1;BCD码只选用了4位二进制编码中前10组代码。BCD码不使用1010~1111六组编码;编码到1001后就产生进位。5.1.2不同数制的转换BCD编码与十进制数的对应关系如图5-4所示。【例5-12】将十进制数10.89转换为BCD码。10.89=[00010000.10001001]BCD【例5-13】将BCD码[01110110.10000001]BCD转换为十进制数。[01110110.10000001]BCD=76.81十进制数012345678910BCD编码000000010010001101000101011001111000100100010000十进制数10•89BCD码00010000•10001001BCD码01110110•10000001十进制数76•815.1.2不同数制的转换常用数制之间的转换方法如图5-8所示。《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.1.3二进制整数编码51.4二进制小数编码5.1.5二进制补码运算5.1.1常用数制的特征5.1.2不同数制的转换5.1.3二进制整数编码1、无符号二进制整数编码形式运算结果超出数据表示范围称为“溢出”。如,8位无符号数运算结果大于255时,就会产生“溢出”。【例5-15】[11001000]2+[01000001]=100001001(最高位1溢出)编码字节越长,数值表示范围越大,越不容易导致“溢出”问题。“以空间换时间”的计算思维方式:如果小数值用1字节存储,大数值用多字节存储,这种变长存储会使计算复杂化,因为需要增加定义数据长度位;计算时需要对每个数据进行长度判断。因此,程序设计时先要定义数据类型,同一类型数据采用统一存储长度。这样虽然会浪费一些存储空间,但提高了运算速度。5.1.3二进制整数编码【例5-16】不同存储长度时,无符号十进制数[86]10的编码形式。1字节存储:01010110
2字节存储:0000000001010110
4字节存储:000000000000000000000000010101105.1.3二进制整数编码2、带符号二进制整数编码形式计算机用最高位作为符号位,0表示正数,1表示负数,其余位表示数值大小。符号化的二进制数称为机器数或原码;没有符号化的数称为真值。机器数长度固定(如8、16、32、64位)。当二进制数位数不够时,整数在最高位前用0补足,小数在最低位后用0补足。【案例】二进制数+1011真值与机器数区别如下。真值8位机器数(原码)16位机器数(原码)+101110001011100000000000101115.1.3二进制整数编码3、常用数据类型的存储长度和表示范围计算机中,同一类型的数据具有相同的存储长度,与数据的实际长度无关。C语言中数据类型的长度以及数值域(32位编译器)数据类型标识符类型说明存储长度(字节)数值范围有效位char字符型1——unsignedchar无符号字符型2——shortint短整型2-32768~327675unsignedshortint无符号短整型20~655355int整型4-2147483648~214748364710unsignedint无符号整型40~429496729510float实型(浮点单精度)41.18×10-38~3.40×1038
7double实型(浮点双精度)82.23×10-308~1.79×10308
15longdouble实型(浮点长双精度)103.37×10-4932~1.18×104932
195.1.3二进制整数编码4、大整数的表示与计算一般情况下,最大有效数据为19位。超过编程语言表示范围的大整数,必须采用其它方式处理。【例5-19】在Excel2010中,计算12345000000000000000+9999计算结果=12345000000000000000可见加数被完全忽略,因为Excel只有16位有效数据;超出16位时,虽然可以表达和计算,但将产生计算误差。5.1.3二进制整数编码密码算法都建立在大整数运算基础上。如,要存储100位有效数时,任何编程语言都无法处理;简单方法:用字符串数组来存储这个100位的有效数。大整数只能一位一位或几位几位输入;或者用字符串的形式输入。大整数加法:模拟竖式加法,从个位逐位相加;超过或达到10则进位;进位保存在中间变量中;相加结果存放在数组中。大整数的加减运算必须编写程序实现。5.1.3二进制整数编码【例5-20】计算:12345678901234567890+97661470000796256798
12345678901234567890+97661470000796256798
进位1
10
1
0
0
1
01
1
0110007148902030824688《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.1.3二进制整数编码51.4二进制小数编码5.1.5二进制补码运算5.1.1常用数制的特征5.1.2不同数制的转换5.1.4二进制小数编码1、定点数编码方法定点数:小数点位置固定不变的数。定点数有定点整数和定点小数。增加存储长度可以提高小数的精度。【例5-21】将二进制数-0.1001001用2个字节存储为定点小数。定点整数和定点小数:11001001
00000000S小数点符号位S小数点5.1.4二进制小数编码2、浮点数编码方法实数可以表示成:一个纯小数和一个乘幂之积的形式。【例5-22】123.45=0.12345103【例5-23】0.0034574=0.3457410-2【例5-24】3.14=3.14100=0.314101(规格化表示方式)小数点位置变化的数称为浮点数。浮点数指数表示:指数称为“阶码”,小数称为“尾数”。二进制数的阶码和尾数都用二进制数表示。【例5-25】[1001.011]2=[0.1001011]22100【例5-26】[-0.0010101]2=[-0.10101]22-105.1.4二进制小数编码任意二进制浮点数公式:N=±M×2±E
(5-2)式中,M为尾数(纯小数部分),整数E为阶码,M与E都带符号。例如:-1101B=-0.1101B×24
阶码小数点尾数二进制浮点数特征:尾数的位数决定数的精度;阶码的位数决定数的范围。阶符阶码E尾符S尾数M
(定点整数)
(定点小数)5.1.4二进制小数编码【例5-27】[-0.00011011]2=[-0.11011]2×2-11的32位编码如下:以上数据在计算机中的32位存储格式如下:阶符阶码尾符尾数10000011111011000000000000000000312423
1615870100000111110110000000000000000005.1.4二进制小数编码3.二进制小数的截断误差(1)浮点数存储空间不够引起的截断误差截断误差(舍入误差):
二进制浮点数存储时,如果尾数存储空间不够,会导致部分小数丢失。
可以使用较长的尾数域,减少截断误差。【例5-28】二进制数10.101存储为8位浮点数时,将引起截断误差。010010101(最后一位丢失)5.1.4二进制小数编码(2)数值转换引起的截断误差截断误差的另外一个来源是无穷展开式。二进制中,有无穷展开式的数值多于十进制数。十进制小数转换成二进制时,不能保证精确转换;二进制小数转换成十进制,也遇到同样的问题。【例5-29】十进制数0.8转换为二进制时为:0.11001100......【例5-30】十进制数1/10转换为二进制数时,也会遇到无穷展开式问题。十—二进制小数转换时,可根据精度要求取近似值,或采用0舍1入规则。5.1.4二进制小数编码(3)浮点数的相加顺序一个大数加上一个小数,那么小数可能被截断。多个数值相加的原则是先相加小数字,避免产生截断误差。大多数商用软件提供的计算精度已经足够了。特殊应用领域(如导航系统),小误差可能在运算中累加,产生严重后果。5.1.4二进制小数编码4、浮点数运算的精度十进制数转换为二进制数时,需要的二进制数位数为:Log2(10)/Log2(2)=3.33(bit)如,将32位(包含小数点)十进制数转换成二进制数时;总共需要:32×3.3=106位二进制数。IEEE754标准规定的浮点数规格如表5-4所示。浮点数规格总长(位)符号位S(位)阶码e(位)尾数M(位)尾数最大有效值单精度浮点数规格3218238388608双精度浮点数规格64111524.5×1015扩展双精度数规格180115641.8×1019扩展双精度数规格21281151125.1×10335.1.4二进制小数编码【扩展】二进制浮点数的存储。26.0D=11010.0B=+1.10100*2401000001110100000000000000000000+127=131=10000011B单精度32位例:《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.1.3二进制整数编码51.4二进制小数编码5.1.5二进制补码运算5.1.1常用数制的特征5.1.2不同数制的转换5.1.5二进制补码运算1、原码在二进制数运算中存在的问题原码运算的复杂性:做x+y运算时,要判别两个数的符号,增加了运算时间。原码会出现:[00000000]2=[+0]10,[10000000]2=[-0]10的“正0负0”问题。符号位会对运算结果产生影响,导致运算出错。【例5-31】[01000010]2+[01000001]2=[10000011]2(进位导致的错误)【例5-32】[00000010]2+[10000001]2=[10000011]2(符号位相加导致的错误)在只考虑数有效位的情况下,两个互为补码的数相加,结果有效位为0时,称这两个数互补。例如,10的补码有:(1,9)、(2,8)、(3,7)、(4,6)、(5,5)。二进制数的补码可以带符号运算,而运算结果不会产生错误;计算机中的数值广泛采用补码的形式进行存储和计算。5.1.5二进制补码运算2、二进制数的反码编码方法引入反码是补码运算的需要。二进制正数的反码与原码相同;负数的反码是对该数的原码除符号位外各位取反。【例5-33】二进制数字长为8位时,[+5]10=[00000101]原=[00000101]反【例5-34】二进制数字长为8位时,[-5]10=[10000101]原=[11111010]反5.1.5二进制补码运算3、二进制数的补码编码方法正数的补码=原码。负数的补码=原码取反+1。原码、反码和补码,符号位都不变。【例5-35】[10]10的原码为:[10]10=[00001010]原[-10]10的原码为:[-10]10=[10001010]原【例5-36】[10]10的反码为:[10]10=[00001010]反[-10]10的反码为:=[11110101]反【例5-37】[10]10的补码为:[10]10=[00001010]补[-10]10的补码为:[-10]10=[11110110]补5.1.5二进制补码运算二进制数各种编码的表示方法如表5-5所示。十进制数真值原码反码补码0000000000000000000000000000100000001111111100000000+1+1000000010000000100000001-1-1100000011111111011111111+15+1111000011110111000001110001-15-1111100011111111000011110001-127-1111111111111111000000010000001-128-10000000——100000005.1.5二进制补码运算4、补码的运算规则补码算法思想:把正数和负数都转换为补码形式,使减法变成加一个负数的形式,从而使正负数的加减运算转换为单纯的加法运算。补码运算结论:补码两数加法运算时,结果仍为补码。补码的符号位可以与数值位一同参与运算。运算结果如有进位,判断是否溢出;如果不是溢出,则将进位舍去不要。5.1.5二进制补码运算不论对正数和负数,补码都具有以下性质:
[A]补+[B]补=[A+B]补
(5-3)
[[A]补]补=[A]原
(5-4)式中,A、B为正整数、负整数、0均可。小数的情况,在以后课程讨论。【例5-38】A=[-70]10,B=[-55]10,求A与B相加之和。(1)将A、B转换为补码;[-70]10=[-(64+4+2)]10=[11000110]原=[10111001]反+[00000001]=[10111010]补[-55]10=[-(32+16+4+2+1)]10=[10110111]原=[11001000]反+[00000001]=[11001001]补(2)进行补码加法运算;
10111010
+11001001进位1自然丢失→1100000115.1.5二进制补码运算(3)将运算结果(补码)进行求补运算(取反加1),得到原码。[10000011]补=[11111100]反+[00000001]=[11111101]原=[-125]10结论:补码加法运算不用考虑数值正负,直接进行补码加法即可。减法可以通过补码的加法运算实现。如果运算结果最高位为0,表示结果为正数;如果最高位为1,则结果为负数。《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.2.3统一字符编码5.2.4声音数字化处理5.2.5图像数字化处理5.2.1英文字符编码5.2.2汉字字符编码5.2.1英文字符编码1、BCDIC编码早期计算机字符编码从霍尔瑞斯(HermanHollerith)卡片发展而来;霍尔瑞斯卡片在1890年的美国人口普查中使用。6位字符编码系统BCDIC(二进制与十进制交换编码)源自Hollerith码;1960年代逐步扩展为8位EBCDIC码;IBM大型计算机采用EBCDIC码标准。5.2.1英文字符编码2、ASCII编码(1)ASCII码编码规则ASCII(美国信息交换标准码)码用7位二进制数对1个字符进行编码;ASCII可以表示27=128个字符编码。计算机以1个字节存放1个ASCII码字符;ASCII码每个字节最高位为0;(2)ASCII码应用案例【例5-39】“Hello”的ASCII编码。Hello01001000011001010110110001101100011011115.2.1英文字符编码(1)ASCII码编码规则5.2.1英文字符编码(3)ASCII码编码规律0~9字符码高4位编码为0011,低4位为0000~1001;去掉高4位时,低4位正好是0~9的二进制数。ASCII码26个字母编码是连续的;字母A~Z码值为65~90;字母a~z码值为97~122;大写字母第6位值为0,小写字母第6位值为1;它们之间的ASCII码值十进制形式相差32;ASCII编码定义了33个无法显示的控制码;ASCII控制码目前极少使用。5.2.1英文字符编码3、扩展ASCII码(ANSI码)ASCII码不能满足非英语国家的需要。如,无法表示英磅符号(£);如,无法显示重音符号(é);如,无法显示希腊语、希伯来语、阿拉伯语、俄语、汉语等。ASCII码只用了7位,很多国家就使用128~255的码字来表示其他符号。1981年PC机推出时,就固化了一个256个符号的字符集。当PC机在美国之外销售时,这些扩展的ASCII码就完全乱套了。5.2.1英文字符编码ANSI(美国国家标准学会)标准结束了这种混乱。ANSI标准:低128个码字采用标准ASCII编码;高128个码字根据语言不同,采用“码页”处理方式。如,IBM字符集码页为437;如,以色列码页是862;Windows国际版有很多这样的码页,涵盖了各种语言。5.2.1英文字符编码【扩展】ANSI扩展ASCII码。5.2.1英文字符编码【扩展】字符集与编码之间的关系。5.2.1英文字符编码【扩展】莫尔斯电报码(MorseCode)。5.2.1英文字符编码【扩展】布莱叶盲文编码(BrailleCode)。《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.2.3统一字符编码5.2.4声音数字化处理5.2.5图像数字化处理5.2.1英文字符编码5.2.2汉字字符编码5.2.2汉字字符编码1、双字节字符集(DBCS)亚洲国家常用文字符号大约2万多个。8位编码不能满足需要,解决方案是采用DBCS(双字节字符集)编码。DBCS用2个字节定义1个字符,当2个字节编码值低于128时为ASCII码,编码值高于128时,为所在国家定义的编码。【例5-41】汉字早期采用双字节编码,字节最高位为0表示标准ASCII码;字节最高位为1时,用2个字节表示一个汉字。即有的字符用1个字节表示(如英文),有的字符用2个字节表示(如汉字)。5.2.2汉字字符编码双字节编码换存在以下问题:(1)程序中处理字符串时,指针移动可能会导致错误;(2)字符串存储时,需要计算字符串的长度;(3)丢失双字节字符的高位字节后,会产生“乱码”现象;(4)在存储和传输中,是高字节在前,还是低字节在前?5.2.2汉字字符编码2、汉字编码(1)GB2312-80字符集汉字编码1981年,《信息交换用汉字编码字符集·基本集》(GB2312-80)标准颁布。GB2312-80标准规定:1个汉字用2个字节表示;每个字节只使用低7位,最高位为0;共收录6763个简体汉字、682个符号;一级汉字3755个,以拼音排序;二级汉字3008个,以偏旁排序。【例5-42】“啊”字的国标码为:001100000010000130H21H5.2.2汉字字符编码【案例】GB2312-80字符集和区位码、国标码、内码。符号区一级字库二级字库编码5.2.2汉字字符编码(2)内码国标码最高位为0,与ASCII码无法区分;因此,早期计算机内部,汉字编码全部采用内码表示。早期内码是将国标码两个字节的最高位设定为1,保持中英文的兼容性。【例5-43】“啊”字的内码为:操作系统内部编码,早期DOS系统采用ASCII码;目前操作系统内部基本都采用Unicode字符集编码,字节高位0、1兼有。1011000010100001B0HA1H5.2.2汉字字符编码(3)编码转换部分编程语言提供了编码转换函数。【例5-44】用PHP语言编码转换函数,求字符串“中国”的GB2312-80内码。<?phpechourlencode("中国");
//输出编码为:%D6%D0%B9%FA,%为分隔符//?>(4)BIG5字符集汉字编码台湾、香港地区普遍使用BIG5繁体汉字编码标准;BIG5包括440个符号,13060个汉字。5.2.2汉字字符编码3、字形编码ASCII、GB2312-80等解决了信息的存储,传输,计算、处理等问题;字符的显示和打印输出时,需要另外对字形编码。、通常,将所有字形编码的集合称为字库。计算机中有几十种中英文字库。字形编码有点阵字形和矢量字形两种类型。汉字输入键盘输入汉字信息
(输入码)机内码字形码显示/打印输出汉字输出国标码5.2.2汉字字符编码(1)点阵字形编码点阵字形是将每个字符分成16×16(或其他分辨率)的点阵图像,然后用图像点的有无(一般为黑白)表示字形的轮廓。缺点:不能放大,放大后字符边缘会出现锯齿现象。5.2.2汉字字符编码(2)矢量字形编码矢量字形保存每个字符的数学描述信息。如,笔划的起始、终止坐标,半径、弧度等。显示和打印矢量字形时,要经过一系列的运算才能输出结果。矢量字形可以无限放大,笔划轮廓仍然保持圆滑。Windows中绝大部分为矢量字形,只有很小的字符采用点阵字形。【例5-46】Windows中,矢量字符由数学方程和参数点组成。5.2.2汉字字符编码【扩展】矢量字形。矢量字形=计算公式+字形参数计算公式:描述函数、直线方程、B样条(Bezier曲线)拟合公式等字形参数:基点、基线、锚点、控制点、宽度、角度、颜色等矢量字符显示:查找字符取出参数计算字形显示字符3次B样条曲线2次B样条曲线1次B样条曲线5.2.2汉字字符编码(3)TrueType矢量字形TrueType是Apple和Microsoft公司提出的字形技术。TT是用函数描述字体轮廓外形的指令集合。TT指令包括:字型构造,颜色填充,描述函数,条件控制,提示信息,控制指令等。TT采用二次B样条曲线和直线方程描述字形外部轮廓。Windows矢量字库保存在C:\Windows\fonts目录下;如,文件扩展名为FON,表示是点阵字库;如,文件扩展名为TTF,表示是矢量字库。各种矢量字库5.2.2汉字字符编码Windows中矢量字形与点阵字形的显示效果如图5-28所示。《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.2.3统一字符编码5.2.4声音数字化处理5.2.5图像数字化处理5.2.1英文字符编码5.2.2汉字字符编码5.2.3统一字符编码1、国际通用字符集(1)Unicode(统一码)字符集Unicode是一种国际通用字符编码标准。Unicode目标:收录世界上所有语言的文字和符号;对每个字符定义一个值(码点);码点可用2字节表示(UCS-2),也可用4字节表示(UCS-4)。Unicode字符名称=代码点值前面加上“U+”。如,字符“A”的名称是“U+0041”。Unicode和UCS获得了网络、操作系统、编程语言等广泛支持。如,WindowsNT/2000/XP/7/8、Linux等。5.2.3统一字符编码【扩展】字符集编码图。5.2.3统一字符编码(2)UCS-2(通用字符集)UCS-2是ISO(国际标准化组织)和Unicode共同定义的国际通用字符集。UCS-2代码长度固定为2个字节(16位)。英文符号在ACSII码前面加一个代码点为0的字节。如,“A”的ASCII码为41H,它的UCS-2代码点为U+0041H。UCS-2优点:亚洲字符的存储空间比UTF-8编码少;处理字符的速度比UTF-8编码快,因为编码长度是固定的;对Windows和Java的支持更好。Windows2000/XP/7/8在系统内部使用UCS-2字符集,必要时转换为ASCII码。5.2.3统一字符编码2、Unicode字符的存储和传输问题(1)“大端”与“小端”字节序在《格列佛游记》中,小人国的内战源于吃鸡蛋时是究竟从大端敲开还是从小端敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。5.2.3统一字符编码字符编码在存储和传输中,同样遇到了“大端”与“小端”的问题。如,“汉”字Unicode编码是U+6C49,写入文件时,将“6C”存储在起始地址就是大端字节序(BE,起始地址存高位字节);将“49”存储在起始地址就是小端字节序(LE,起始地址存低位字节)。x86计算机中,数据存储和传输采用“小端”字节序;TCP/IP协议、Java语言、苹果计
算机采用“大端”字节序。起始地址低位字节高位地址5.2.3统一字符编码【扩展】网络字节序。TCP/IP网络协议中,所有二进制整数在网络传输中采用“大端字节序”,因此又称为“网络字节序”。【例】4个字节的32bit值(0x12345678),在网络中的传输次序是:首先0~7bit,其次8~15bit,然后16~23bit,最后24~31bit。这种传输次序称为“网络字节序”(大端字节序)。如果程序只在单机环境下运行,并且不和其他程序打交道,那么可以忽略字节序的存在。唯有在跨平台以及网络程序设计中,才考虑字节序问题。123456785.2.3统一字符编码【例5-47】字符串“Hello”在Unicode编码中;大端字节序是:U+0048U+0065U+006CU+006CU+006F小端字节序为:U+4800U+6500U+6C00U+6C00U+6F00小端字节序5.2.3统一字符编码(2)UBOM存储模式计算机在不清楚“大端”或“小端”的情况下,如何进行数据解析呢?解决办法:在每个Unicode字符串的最前面;用“FEFF”表示大端字节序(BE);用“FFFE”表示小端字节序(LE);“FEFF”是不存在的字符编码,不会出现编码冲突问题。5.2.3统一字符编码3、UTF-16编码
(1)UTF-16编码方法
UTF-16编码的前身是UCS2编码。UCS-2编码固定2个字节表示一个字符,一共可表示216=65535个字符。Unicode4.0标准定义了一组附加字符编码,附加字符用4个字节表示,Unicode4.0定义了45960个附加字符。UTF-16编码=UCS-2字符集+附加字符UTF-16编码可用2个字节表示,也可用4个字节表示。目前UTF-16的码点范围是:U+0000~U+10FFFF,大概有111万编码。UTF-16编码主要用于Windows2000/XP/7/8操作系统。5.2.3统一字符编码(2)UTF-16编码案例例如,“中国”字符的各个版本UTF-16编码如表5-8所示。编码标准“中国”字符的编码序列说明UTF-16BE4E2D56FD大端字节序编码UTF-16LE2D4EFD56小端字节序编码UTF-16(BOM,BE)FEFF4E2D56FD字节序标示符+大端编码UTF-16(BOM,LE)FFFE2D4EFD56字节序标示符+小端编码5.2.3统一字符编码【扩展】字符的Unicode编码。5.2.3统一字符编码【扩展】Unicode编码图5.2.3统一字符编码4、UTF-8编码(1)UCS-2编码对存储空间的浪费UCS-2编码需要在ACSII码前加一个0字节码;这样,英文系统就会出现大量为0的字节。美国程序员无法忍受这种存储空间翻倍;传输时间翻倍的浪费;这些程序员选择忽略Unicode字符集,这让事情变得更加糟糕。解决的方法是采用UTF-8编码。容量与效率的矛盾:编码时用几个字节表示一个字符,用的字节越多,编码空间越大,即容量越大。表示一个字符用的字节越多,存储空间就越大,存储或检索的效率降低了。平衡这一对矛盾的方法是采用变长编码方案,因此编码也由简单变得复杂了。5.2.3统一字符编码【扩展】CAP理论及扩展。著名的布鲁尔(Brewer)猜想指出:对于分布式系统,数据一致性(Consistency)、系统可用性(Availability)、分区容错性(Partitioning)三个目标(合称CAP)不可能同时满足,最多只能满足其中两个。CAP理论启示:(1)事物的多个方面往往是相互制衡的。在复杂系统中,冲突是不可避免的。(2)凡事有代价,常常需要在各方面达成某种妥协与平衡。例如,分层会对性能有所损害,但不分层又会带来系统过于复杂的问题。很多时候,结构就是平衡的艺术。明白这一点,就不会为无法找到完美方案而苦恼。(3)复杂性是由需求所决定的。既要求容量大,又要求效率高,这种需求本身就不简单,因此也无法简单地解决。5.2.3统一字符编码(2)UTF-8编码方法UTF-8设计思想:
不修改那些没有坏或不够好的东西,只修改出问题的部分。UTF-8编码方法:0~127之间的码字使用1个字节存储;超过128的码字使用2~4个字节存储。UTF-8编码的长度是可变的。ASCII码与UTF-8码完全一致,解决了美国程序员的烦恼。【例5-48】字符“中”的编码。UTF-8码占3个字节,编码为“E4B8AD”;UTF-16编码为“4E2D”,2个字节;GBK编码为“D6D0”,2个字节。5.2.3统一字符编码(3)UTF-8编码的优点对欧洲字符只要较少的存储空间;兼容ASCII码,容易从ASCII码向UTF-8迁移;与字节顺序无关,可以在不同平台之间交流;容错能力高,不会产生连锁错误(如乱码)。类UNIX系统普遍采用UTF-8字符集;如,Linux系统默认的字符编码是UTF-8;如,HTML和大多数浏览器也支持UTF-8。5.2.3统一字符编码【扩展】各种不同语言文字中,字符“你好”的编码。语言文种编码标准字符集大小文字样例简体中文GB2312-806763你好、中国汉语繁体中文BIG-513053你好、中國漢語藏文Unicode592(扎西德勒)日文SJIS6524こんにちは(空宁尼其哇)韩文KSC56017238안녕하세요(啊宁哈塞优)英文ASCII128Howareyou俄文Windows1251256Привет(的比哦捏特)阿拉伯文Unicode193السلامعليكم(埃瑟兰姆-啊累依库姆)《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.2.3统一字符编码5.2.4声音数字化处理5.2.5图像数字化处理5.2.1英文字符编码5.2.2汉字字符编码5.2.4声音数字化处理声音、图形、视频等信息,需要转换成二进制数后计算机才能存储和处理。将模拟信号转换成二进制数的过程称为数字化处理。1、声音的数字化过程自然声音是连续变化的模拟量。如,对着话筒讲话时,话筒根据周围空气压力的变化,输出连续变化的电压值。模拟音频信号地数字化过程如图5-30所示。5.2.4声音数字化处理【扩展】故障声音的频率。次声波人耳可听域超声波<20Hz20~20,000Hz>20,000Hz女性语音150Hz~9,000Hz电话语音200Hz~3,400Hz调幅广播(AM)50Hz~7,000Hz调频广播(FM)20Hz~15,000Hz高级音响10Hz~40,000Hz男性语音100Hz~8,000Hz声源种类频带宽度5.2.4声音数字化处理(1)采样模拟信号转换成数字信号必须经过采样过程。采样:在固定时间间隔内,对模拟音频信号截取振幅值。单位时间内采样次数(采样频率)越多,数字信号就越接近原声。奈奎斯特采样定理:
采样频率达到信号最高频率的2倍时,可以无失真地恢复原信号。人耳听力范围在20Hz~20kHz之间。采样频率达到:20kHz×2=40kHz,就可以满足采样要求。目前声卡采样频率达到了44.1kHz或更高。5.2.4声音数字化处理【案例】音频信号的采样与量化处理。采样频率5.2.4声音数字化处理(2)量化量化:将信号连续取值为有限多个离散值。量化精度一般用二进制数衡量。如声卡量化位数为16位,有216=65535种量化等级。声卡大多为24位或32位量化精度。(3)编码将采集的原始数据,按文件类型(如WAV、MP3等)编码;再加上音频文件的头部,就得到了一个数字音频文件。编码工作由声卡和音频处理软件(如AdobeAudition)共同完成。5.2.4声音数字化处理【扩展】模拟电视信号的数字化。5.2.4声音数字化处理2、声音信号的输入与输出数字音频信号可通过网络、光盘、数字话筒、MIDI接口等输入计算机。模拟音频信号输入计算机后,由声卡转换为数字信号;这一过程称为“模/数转换”(A/D)。播放音频
播放软件
音频解压缩
音频芯片
,
模拟音频信号这一过程称为“数/模转换”(D/A)。5.2.4声音数字化处理【扩展】个人音乐工作站。5.2.4声音数字化处理【扩展】个人音乐工作室组成。《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.2.3统一字符编码5.2.4声音数字化处理5.2.5图像数字化处理5.2.1英文字符编码5.2.2汉字字符编码5.2.5图像数字化处理1、图像的数字化数字图像(Image)可由数码相机、数码摄像机、扫描仪等设备获取。数字图像也可以直接在计算机中自动或人工设计生成。5.2.5图像数字化处理2、图像的编码(1)二值图编码二值图:只有黑、白两色的图。图像离散化:设置取样分辨率(采样);对图像中每个像素用1位二进数表示。图像分辨率(采样精度)指单位长度内包含像素点的数量;分辨率单位:dpi(点/英寸)等。图像分辨率越高,图像质量越好,文件占用存储空间越大。5.2.5图像数字化处理【扩展】图像像素与尺寸5.2.5图像数字化处理(2)灰度图像的编码灰度图将白色与黑色之间的过度灰色按对数关系分为若干亮度等级。一般亮度分为0~255个等级(量化精度);人眼对图像亮度的识别小于64个等级。图像中每个像素点的亮度值用1个字节表示。5.2.5图像数字化处理(3)彩色图像的编码显示器的任何色彩都可以用红绿蓝(RGB)三个基色按不同比例混合得到。5.2.5图像数字化处理图像中每个像素点用3个字节进行编码。每个颜色用1个字节表示,亮度范围为0~255个等级。一个像素点的色彩范围为:224=1670万种色彩。像素点用多少位二进制数表示,称为色彩深度(量化精度)。5.2.5图像数字化处理【案例】彩色图像的RGB模式。RGB彩色图像R
G
BRG
BR数组—8bit表示(256级色阶)G数组—8bit表示(256级色阶)B数组—8bit表示(256级色阶)最大色彩数:28×28×28=224=16777216(16.7M)5.2.5图像数字化处理3、点阵图像的特点点阵图像由多个像素点组成。点阵图像放大时,像素点会使线条和形状显得参差不齐。5.2.5图像数字化处理4、矢量图形的编码矢量图形(Graphic)用直线或曲线描述图形。矢量图形采用特征点和计算公式对图形进行表示和存储。显示或打印矢量图形时,要经过一系列的数学运算才能输出图形。矢量图形的的优点是无论进行放大、缩小或旋转等操作,图形都不会失真。矢量图形可以只修改其中某一个物体,而不会影响图中其他物体。5.2.5图像数字化处理【扩展】图形的点阵表达和矢量表达形式。5.2.5图像数字化处理【案例】矢量图形和点阵图形放大时的对比。5.2.5图像数字化处理矢量图形缺点:难以表现色彩层次丰富的图像效果;无法使用廉价设备将图形输入到计算机中并矢量化;目前没有统一的标准格式;在不同软件中进行交换困难。主要应用:线框型图片,工程制图,二维动画设计,三维物体造型等。矢量图形软件:如,Visio、AutoCAD、FlashCS、3DMAX等。矢量图形可以转换为点阵图像;点阵图像转换为矢量图形时效果很差。5.2.5图像数字化处理【案例】分形矢量图形。5.2.5图像数字化处理【案例】Visio矢量图形。5.2.5图像数字化处理【案例】AutoCAD矢量图形。5.2.5图像数字化处理【案例】3DMAX矢量图形。《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.3.3逻辑命题演算5.3.4逻辑运算应用5.3.1基本逻辑运算5.3.2数理逻辑命题5.3.1基本逻辑运算1、逻辑运算的特点逻辑变量和逻辑值只有“0”和“1”;它们不表示数值的大小,只表示事物的性质或状态。如,命题判断中的“真”与“假”;如,程序流程图中的“是”与“否”‘如,数字电路中的“低电平”与“高电平”等。基本逻辑运算:与运算(AND)或运算(OR)非运算(NOT)通过基本逻辑运算,可组合出任何其他逻辑关系。5.3.1基本逻辑运算2、与运算(AND)与运算是逻辑乘法运算;逻辑表达式:Y=A•B运算规律:全1为1,否则为0(真真得真)。【例5-52】10011100AND00111001=00011000
10011100×00111001
000110005.3.1基本逻辑运算逻辑运算规则:(1)逐位按规则运算;(2)不同位之间没有任何关系,不存在进位或借位;(3)不存在溢出问题;(4)没有符号问题,逻辑值以原码形式表示和存储。布尔代数特别适合逻辑电路设计。5.3.1基本逻辑运算3、或运算(OR)或运算是逻辑加法运算;逻辑表达式:Y=A+B运算规律:全0为0,否则为1(假假得假)。【例5-53】10011100OR00111001=10111101
10011100+00111001
101111015.3.1基本逻辑运算4、非运算(NOT)非运算是逻辑取反运算;逻辑表达式:
运算规律:逻辑值取反。【例5-54】NOT(10011100)=01100011
┐10011100
011000115.3.1基本逻辑运算5、异或运算(XOR)异或运算用符号“⊕”表示;运算规则:相同为0,相异为1(同假异真)。《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.3.3逻辑命题演算5.3.4逻辑运算应用5.3.1基本逻辑运算5.3.2数理逻辑命题5.3.2数理逻辑命题1、数理逻辑的发展数理逻辑研究内容:古典数理逻辑(命题逻辑,谓词逻辑);现代数理逻辑(公理集合论、证明论、模型论、递归论等)。数理逻辑是现代计算机技术的基础理论。柯里-霍华德同构理论:对一个函数计算结果的断言可类比于一个逻辑定理,计算这个值的程序可类比于这个定理的证明。柯里-霍华德同构经常表述为“证明即程序”。5.3.2数理逻辑命题2、数理逻辑中的命题推理过程必须依靠命题表达;命题是能判断真假的陈述句。命题的结论:为真或为假。【例5-55】下列陈述句都是命题。8小于10。8大于10。一个自然数不是合数就是素数。明年10月1日是晴天。公元1100年元旦下雨。/*命题真值为真*//*假命题也是命题,是真值为假的命题*//*命题真值为假,1不是合数和素数*//*真值目前不知道,但真值是确定的*//*可能无法查明真值,但真值是确定的*/5.3.2数理逻辑命题【例5-56】下列句子不是命题。8大于10吗?天空多漂亮!禁止喧哗。X>Y。X=Y+5。我在说谎。/*疑问句不是命题*//*感叹句不是命题*//*命令句不是命题*//*命题真值不能确定*//*方程不是命题*//*悖论不是命题*/《计算机导论——计算思维和应用技术》计算机第5章
信息编码5.1数值信息编码5.2字符信息编码5.3逻辑运算与应用5.4压缩与纠错编码5.3.3逻辑命题演算5.3.4逻辑运算应用5.3.1基本逻辑运算5.3.2数理逻辑命题5.3.3逻辑命题演算1、逻辑联结词命题演算是通过逻辑联结词,构成更复杂的命题。逻辑连接词类似运算符号;通过逻辑联结词,可以由简单命题组成复合命题。命题用符号表示称为命题符号化。5.3.3逻辑命题演算逻辑联结词与含义逻辑联结词表示命题的推理规则联结词说明命题案例命题读法命题含义┐非┐P非PP的否定(逻辑取反)∧与P∧QP并且QP和Q的合取(逻辑乘)∨或P∨QP或者QP和Q的析取(逻辑加)如果…,则…..PQ若P则QP蕴含Q(单向条件)当且仅当PQP当且仅当QP等价Q(双向条件)命题的前件与后件不同逻辑命题运算的真值PQP∧QP∨QPQPQ0000110101101001001111115.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《理论力学》课程教学大纲
- 《文献检索与论文写作》课程教学大纲
- 2024年低价动迁房出售合同范本
- 2024年出售带牌协议车的协议书模板
- 2024年承接水电外加工合同范本
- 黑龙江省绥化市海伦市前进同心中学2023-2024学年九年级上学期期末考试化学试卷A(含解析)
- 2024-2025学年粤沪版物理八年级下册期末模拟检测卷(含答案)
- 全麻手术课件教案
- 2024年电气年终总结
- 医疗废物规范管理培训
- DL∕T 2447-2021 水电站防水淹厂房安全检查技术规程
- 以新质生产力促进煤炭工业高质量发展
- 《浙江省建设工程专业工程师和高级工程师职务任职资格评价条件》
- AQ 1097-2014 井工煤矿安全设施设计编制导则(正式版)
- 办理电信业务的委托书
- 2024年网上大学智能云服务交付工程师认证考试题库800题(含答案)
- 知道网课智慧树《盆景学(西南大学)》章节测试答案
- 机动车检测站违规检验整改报告
- 中国书法艺术 知到智慧树网课答案
- 履约管理制度
- 2024年建筑电工复审考试题库附答案
评论
0/150
提交评论