




已阅读5页,还剩82页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第2章数码系统数据在计算机内部的表示形式,2,【学习指南】,Q?人的世界里信息是如何表现的?在数字计算机的世界里信息是如何表现的?数值在计算机内部以什么形式表示?文字在计算机内部以什么形式表示?图形在计算机内部以什么形式表示?,便于理解,便于实现,3,【学习指南】,主要内容:数据表示形式的多样性机器码的编码形式信息传输过程中的检错/纠错码,4,2.1数据表示形式的多样性,数据有各种形式:数值、文字、图形、图像2.1.1适合于人的数据表示形式2.1.2适合于计算机的表示形式-编码,用普通算盘进行十进制运算,5,实现计算机的基本元件是数字电路,数字电路只有两种基本状态:导通和截止。所以采用二进制,并用编码表示各种形式的数据。,用特殊算盘实现二进制运算,6,2.1数据表示形式的多样性,2.1.2.1数值数据在计算机内部的表示形式,7,2.1数据表示形式的多样性,十进制数的二进制编码:BCD码:4位二进制数表示1位十进制数,有权码:每位上的1代表确定的值,8,2.1数据表示形式的多样性,十进制数的二进制编码:余3码:4位二进制数表示1位十进制数,无权码:无法确定每位上的1代表的值,9,2.1数据表示形式的多样性,格雷码(GrayCode):反射码相邻代码之间只在某1位上取值不同,反射码;相邻代码之间只有一位不同。,10,Q?28的二进制编码是什么?BCD码(余3码)是什么?格雷码是什么?,BCD码在什么场合下使用?格雷码适合在什么场合下使用?,111000101,10110011,1100,11,2.1数据表示形式的多样性,2.1.2.2符号数据在计算机内部的表示形式:ASCII码,12,2.1数据表示形式的多样性,2.1.2.2符号数据在计算机内部的表示形式,ASCII码,13,2.1数据表示形式的多样性,2.1.2.3符号数据的显示,点阵码,14,2.1数据表示形式的多样性,2.1.2.4汉字的输入、存储与显示显示:采用点阵图形显示汉字。一般采用1616、2424、3232的点阵。存储:为了信息交换的方便,汉字在计算机内部的二进制编码遵从国家标准GB2312(国标码),其中包含汉字6763个,每个汉字需要2个字节。输入:汉字输入法。键盘输入拼音输入法字形编码输入:如五笔(王码)字形输入法。语音输入手写输入:借助于图形板、画笔和手写体汉字识别软件。书面文字扫描输入:借助光学字符识别仪(OCR)和软件。,15,2.1数据表示形式的多样性,2.1.2.5图形数据在计算机内部的表示形式图形可以分为:规则图形:例如直线、圆、圆弧等。不规则图形:例如照片、地图等。点阵可以表示任何图形,需要较多的数据空间。对于规则图形,矢量表示法等等。例1:直线的表示形式:2点决定一条直线,可以用2个端点的坐标,4个字节表示该直线,而且和点阵密度无关。例2:圆的表示形式:圆是一个规则图形,可以用圆心坐标和半径尺寸表示圆。,16,2.1数据表示形式的多样性,2.1.3数据格式的相互转换机内码:如ASCII码、国标码GB2312、UNICODE等,指数据在计算机内部的存储格式。机内码的主要特点:标准格式,以利于数据交换;节省存储空间;便于计算机运算处理。数据在输入、存储、运算、输出的过程中需要转换格式,以适应每一阶段的需要。,17,2.2机器数的编码格式,数值型数据在计算机内部的二进制编码称为机器数。机器数的编码格式有多种,如:原码、反码、补码、移码、定点数、浮点数等。机器数的编码原则以便于机器运算、便于硬件实现为主。,18,2.2机器数的编码格式,2.2.1二进制定点数的原码表示形式,19,2.2机器数的编码格式,定点小数的原码表示,20,原码的定义:变量x是带符号的小数,变量x的实际取值(简称真值)记作X:,真值X的原码记作X原:,数值位:a-i=x-i符号位:当X为正时,a0=0;否则为1。特点:原码为数的绝对值前添加1个符号位,0正1负;原码零有两个编码,+0和0的编码不同;原码不便于加减运算,但乘除运算方便。,21,原码的加法流程图,22,2.2机器数的编码格式,2.2.2二进制定点数的补码表示形式现代计算机内部几乎都采用补码作机器码2.2.2.1补码的定义,X补=(X+r)modr(24),X:真值;r:模数(r大于或等于X的最大值);Mod:求模运算符。,定点小数补码的定义(以模数r=2为例):,X补=(X+2)mod2(25),23,补码的特点:补码最高位为符号位,0正1负。补码零有唯一编码,故补码可以多表示一个负数。补码能很方便地用于加减、乘除运算。,实例:X=0.10110-0.101100.0000X补=01011010101000000,24,X与X补的对应关系,数据空间的变换,25,对正数求补运算:610=000001102按位取反11111001+111111010=610,求补运算:,26,对负数求补运算:610=111110102按位取反00000101+100000110=610求补可以求负!(6)=6,求补运算:,27,2.2机器数的编码格式,2.2.2.2补码的加法运算(以模数r=2为例)X+Y补=(X补+Y补)mod2,28,2.2机器数的编码格式,2.2.2.3补码的减法运算(以模数r=2为例)X-Y补=X补+-Y补mod2=(X补+Y补|补)mod2,29,加法和减法,加法和减法都可用加法器实现:对于2进制数:模数r=2(或2n)思考:对于10进制数:r=?对于16进制数:r=?,增加一个求补电路即可,30,加法和减法(续),十进制补码减法:59-45=?,十六进制补码减法:4A-3B=?,59+54+1=114,4A+C4+1=10F,模数运算,舍弃高位,31,任务:设二进制整数X的补码形式为:字长w位,其中xw1为符号位。在不改变该补码数值的前提下,将符号位扩展至k位。方法:,补码的符号扩展(SignExtension),32,实例:,将短整型数据short转换成长整型数据C语言自动执行符号扩展,shortintx=15213;intix=(int)x;shortinty=-15213;intiy=(int)y;,33,整数加(减)法时的溢出(Overflow)问题,溢出:在使用计算机进行计算时才会产生的特殊情况计算机运算器的字长是有限的(由硬件决定);当运算结果超出硬件所能表示的范围时出现;计算机算术运算的局限!计算机硬件应有能力发现溢出发现溢出最简单的方法:双符号位发现溢出后产生报警信号,转中断处理,34,双符号位检测溢出(实例),35,双符号位检测溢出(实例),36,2.2机器数的编码格式,2.2.2.4补码的算术移位操作真值的算术移位,补码的算术移位,37,2.2机器数的编码格式,2.2.2.5二进制定点整数的补码小数点位置固定在最低位,字长n位;定点整数补码的定义:,1位符号位:X补=(X+2n+1)mod2n+1,2位符号位:X补=(X+2n+2)mod2n+2,能够表示的整数范围:-2nX补表示的数值范围9)时,进行修正,+6result=进位位+数值位,43,44,2.2机器数的编码格式,2.2.5浮点数的编码形式“浮点”是指小数点的位置不固定(浮动)。在机器字长确定的情况下,相对定点数而言,精度下降,但可表示数的范围扩大。,45,实数,带小数的数12.3可以用二进制数表示1001.1010=24+20+2-1+2-3=9.625二进制小数点的位置?固定?定点数能够表示的数的范围有限浮动?浮点如何标识小数点的位置?,定点fixedpoint,浮点floatingpoint,46,规格化,科学记数法,指数标记小数点的位置e.g.31.23x102,312.3x101,3123.0 x100,3.123x103浮点数必须规格化,以使表示方法唯一。,小数点前有一位整数,且非0.,47,有些十进制数无法精确地用二进制数表示0.1010=0.0001100110011.2有些整数能够能用有限的二进制数表示,但不能用IEEE浮点格式精确地表示intx=33554431;floaty=33554431;printf(%dn,x);printf(%fn,y);3355443133554432.000000,局限性,48,可表示的数,局限性只能准确地表示形如x/2k的数其它的数字具有相同的位模式值表示1/30.01010101010121/50.001100110011001121/100.000110011001100112,49,IEEEFloatingPoint,IEEEStandard7541985Williamkahan提出,作为浮点算术运算的统一标准所有主要的CPU厂商都支持。至少保证同样的程序产生同样的结果。由于位模式是有限的,无论如何都不可能表示所有可能的实数,就会出现近似,以及由于近似带来的错误。,50,浮点数硬件,当浮点数被引入微处理器时,芯片上没有足够的晶体管实现浮点运算器。需要另外购买浮点协处理器(e.g.,Intel8087)当代晶体管的预算允许将浮点单元建立在CPU芯片上。Intel486是第一个内建浮点单元的x86CPU(1989),51,片上的FPU,52,浮点格式,53,格式(1)SM2E符号位S表示数的正负尾数M表示小数,范围为1.0,2.0).指数E表示指数部分,底数为2编码s域表示符号位exp域编码Efrac域编码M,浮点表示法,s,exp,frac,注意大写表示真值,小写表示IEEE编码,54,规格化数,条件exp0000且exp1111指数编码E=expBiasexp:无符号数Bias:偏置值单精度:127(exp:1254,E:-126127)双精度:1023(exp:12046,E:-10221023)一般:Bias=2e-1-1,e为指数的位数尾数编码,隐含以1开头M=1.xxxx2xxxx:frac0000时取Minimum(M=1.0)1111时取Maximum(M=2.0)免费获得一个额外的精度位,55,值FloatF=15213.0;1521310=111011011011012=1.11011011011012X213尾数M=1.11011011011012frac=110110110110100000000002指数E=13Bias=127exp=140=100011002,规格化数实例,浮点表示:Hex:466DB400Binary:01000110011011011011010000000000140:1000110015213:1101101101101,56,十进制数转换成IEEE754,347.625的单精度浮点数编码?1.十进制数转换成二进制数:347.625=101011011.1012.移动小数点,变为规格化数:101011011.101x20=1.01011011101x28小数点之后的为尾数:010110111014.exp=E+127:8+127=128+7=100001115.符号位:0为正,1为负.010000111010110111010000000,57,IEEE754-十进制数转换,IEEE浮点数编码如下:10111110011000000000000000000000首先把每个部分转换成十进制数符号位为1,是负数exp为01111100=12410.尾数为0.11000=0.7510.转换成十进制数.(1)s*(1+f)*2e-bias-1*(1+0.75)*2124-127=(-1.75*2-3)=-0.21875.,58,非规格化数,条件exp=0000值指数E=Bias+1尾数M=0.xxxx2xxxx:frac示例exp=0000,frac=0000表示0+0和0具有不同的编码exp=0000,frac0000可表示非常接近于0.0的数当数越来越小,将损失精度“逐渐下溢出”,如果尾数总是(1+f),0如何表示?,59,特殊数值,条件exp=1111示例exp=1111,frac=0000表示值(无穷大)表示溢出的结果根据符号位,可表示正无穷和负无穷例如,1.0/0.0=1.0/0.0=+,1.0/0.0=exp=1111,frac0000表示非数Not-a-Number(NaN)表示运算的结果不能是实数或无穷,在某些应用中,用来表示未初始化的数据。例如,sqrt(1),60,浮点编码表示的实数范围,NaN,NaN,+,0,+非规格化数,+规格化数,-非规格化数,-规格化数,+0,下溢-零处理,下溢-零处理(阶码小于机器所能表示的最小阶码),上溢-中断,上溢-中断(阶码大于机器所能表示的最大阶码),61,单精度数的范围,(1)s*(1+f)*2e-127.最小的正的非0数是1*2-126=2-126.最小的exp是00000001(1).最小的f是00000000000000000000000(0).最大的可能的正的规格化数是(2-2-23)*2127=2128-2104.最大的可能的exp是11111110(254).最大的可能的f是11111111111111111111111(1-2-23).最大和最小可能的32-bit二进制补码整数是-231和231-1使用与32位整数同样多的位模式,IEEE754表示更大范围的数,牺牲了精度。,62,同样32位(232-1)大约4百万个不同的位模式。实数有无限多,IEEE只能表示-2128至+2128之间的部分实数.在2n至2n+1,2n+1至2n+2之间可表示的数的个数是一样多的。因此,浮点算术有“问题”小的舍入误差由于传播和指数运算会累积下来,导致大的错误.舍入错误使得诸多基本的数学公式如结合律不成立。(x+y)+z=x+(y+z).IEEE754保证所有的机器上产生相同的结果-该结果可能在数学上不正确!,有限精度,63,编码的特殊性质,浮点0与整型0编码相同可使用无符号数进行比较,64,浮点数的舍入操作,舍入模式1.401.601.502.501.50朝0舍入11121朝-舍入11122朝+舍入22231朝最近偶数舍入(缺省)12222,65,C语言中的浮点数,C定义两种浮点数:float,double约定在int,float,double之间进行强类型转换将改变数字的值Double或float转换成int截断小数部分朝0舍入超出范围时无定义通常取TMin或TMaxint转换成double准确转换,只要int53bit字长int转换成float将出现舍入,66,2.3信息传输过程中的检错/纠错码,为了提高计算机的可靠性,除了提高器件可靠性,采用更好的生产工艺等措施之外,还可以从数据编码挖掘潜力。数据校验的实现原理:在合法的数据编码之间,加进一些不允许出现的(非法的)编码,使合法的数据编码出现错误时成为非法编码。通过检测编码的合法性发现错误,甚至于定位错误并自动改正。从功能的角度,可分为:检错码:接收方发现异常情况时能够报警。纠错码:接收方发现异常情况时能够酌情处理,错误不严重时能自动纠错,错误严重时报警。三种常用的检错纠错码:奇偶检错码:用于并行数据传送中海明检错与纠错码:用于并行数据传送中循环冗余码:用于串行数据传送中,67,2.3信息传输过程中的检错/纠错码,针对可靠性的问题,68,2.3信息传输过程中的检错/纠错码,2.3.1奇偶校验码最常用的检错码假定原始信息的字长为n位,增加1位校验位,使编码后的字长为(n+1)位,编码的结果使整个码字中取值为1的位数为奇数(奇校验)或偶数(偶校验)。奇偶校验码只能检测出数据代码中一位出错的情况,但无法判断差错所发生的位置。常用于存储器读写检查,或ASCII字符传送过程中的检查。,69,检错码:发现错纠错码:发现错并能纠正错误,偶校验校验码的生成算法:d7=d6d5d4d3d2d1d0,70,奇偶校验码的实现电路,71,2.3信息传输过程中的检错/纠错码,2.3.2*海明校验码海明距离:对2个二进制代码中的每一位进行比较,取值不同的位数称为这2个二进制代码的海明距离。最小码距:最小码距Min(Xi和Xj之间的海明距离),其中Xi和Xj(ij)是编码系统中任意2个合法代码。例:用4位二进制代码表示一个16进制数,由于4位二进制代码总共代表16种状态,没有任何剩余状态未被使用,因而其最小码距为1。增加1个奇校验位,变成用5位二进制代码表示一个16进制数。此时,任何1个合法代码在某一位上取值发生变化,都会变成非法代码(不符合奇校验规则)。所以,奇校验编码的最小码距为2(偶校验编码的最小码距也是2)。如果多增加一些校验位使最小码距增大,有可能得到更强的检错/纠错能力。,72,检错/纠错编码:,Word:,Withevenparity:,WithError:,Identifyingerror:,分为A、B、C三组,每组有一个组内的偶校验位p1、p2、p3。,P1、p2偶校验出错,信息位d1、d2、d3、d4,73,2.3信息传输过程中的检错/纠错码,海明(RichardHamming):检错/纠错码。原理:在数据位中加入若干校验位,将数据代码的码距均匀地拉大,并把数据的每个二进制位分配在若干奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,不但可以发现错误,还能指出是哪一位出错,为进一步自动纠错提供依据。海明码的检错/纠错能力:当传送过程中某1位发生错误,接收方能发现错误并能自动纠错。当传送过程中某2位发生错误,接收方能发现错误但不能自动纠错。,74,设被传送的数据为k位,编码时新增加的校验位为r位,则海明码的总位数m=(r+k)位。r与k的比值越大,检错/纠错的能力越强。当然,r值越大,需要附加的硬件资源越多。r个校验位的状态组合,应当具有指出k+r位中任一位有错或无错的能力,即需要区别出k+r+1种状态。应满足关系式:2rk+r+1这个关系式称为海明不等式,若信息位长度k确定后,由此可得到校验位r的最短长度。,75,校验位与数据位之和为m,每个校验位Pi在海明码中被分在位号2i-1的位置上,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。,S定义了出错模式s=s3s2s1=101表明h5出错!,需要增加P4,S4发现两位错,d2出错,定义纠错信号S=s3s2s1,76,改进:增加一个校验位S4=P4P1P2P3D1D2D3D4P4=P1P2P3D1D2D3D4(1)S4=0,S3S2S1=000,无错(2)S4=0,S3S2S10,表明有两位出错(3)S4=1,S3S2S10,可根据S3S2S1指出的值纠正一位错。在这种情况下,因多增加一位校验位,则海明不等式改为:2k-1n+k称为扩展海明码,其码距=4,可发现两位错并纠正一位错。,77,78,79,2.3信息传输过程中的检错/纠错码,2.3.3*循环冗余校验码CyclicRedundancyCheck简称为循环码或CRC码。常用于串行传送过程中的检错与纠错。编解码电路简单,应用广泛。CRC码:在k位有效数据之后添加r位校验码,形成总长度为n的CRC码。简写作C(n,k)码,其编码格式:,80,模2四则运算:按位进行,没有进位或借位。本节中的运算皆为模2运算。模2加减运算:模2加减运算等于按位作异或运算。模2乘除法运算:用模2加减规则求部分积之和以及部分余数的差。CRC码的编码方法:设被校验的数据D是一个k位的二进制码,用k-1阶的多项式表示为:系数Di取值为0或1,x是一个伪变量,用xi指明各位的位置。设校验码长度为r,将被校验数据D左移r位,右边添加r个0:,2.3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新工人岗前考试题及答案解析
- 小学开学典礼活动策划方案2024版
- 职业卫生检测方案范本
- 施工安全监理员考试题库及答案解析
- 预防食物中毒的教学课件
- 码头泊位土石方施工方案
- 武汉检查井升降施工方案
- 教材全解有教学课件吗
- 多重耐药菌的防控与护理
- 公司前台季度工作总结
- 学校预算制度管理制度
- 产后抑郁症妇女的护理
- 公司全电发票管理制度
- 《人工智能通识导论(慕课版)》全套教学课件
- 视频制作拍摄服务方案投标文件(技术方案)
- 物流客服管理制度
- 下半年中小学教师资格笔试考试题库带答案2025
- 2024年全国职业院校技能大赛高职组(环境检测与监测赛项)考试题库(含答案)
- 综合布线工程安全技术交底
- 贵州省高品质住宅设计导则(试行)2025
- 小学六年级奥数竞赛题100道及答案解析
评论
0/150
提交评论