第六讲浮点数和浮点运算器检错、纠错码

上传人:仙*** 文档编号:244247531 上传时间:2024-10-03 格式:PPT 页数:42 大小:242.50KB
返回 下载 相关 举报
第六讲浮点数和浮点运算器检错、纠错码_第1页
第1页 / 共42页
第六讲浮点数和浮点运算器检错、纠错码_第2页
第2页 / 共42页
第六讲浮点数和浮点运算器检错、纠错码_第3页
第3页 / 共42页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第一单元 第六讲,浮点数和浮点运算器,检错、纠错码,1,内容提要,浮点数,科学表示法,十进制科学表示法,二进制科学表示法,IEEE 754,浮点数标准,计算机内的浮点数表示,表示范围,vs.,表示精度,数制转换,数据类型,2,计算机内的数据,计算机的功能:处理数据,n,位能表示哪些数据?,无符号整数:,0,to 2,n,-1,有符号整数:,-2,(,n-1),to 2,(n-1),-1,其它数据呢?,大整数?,(如:一个世纪的秒数),3,155,760,000,10,(3.15576,10,x 10,9,),非常小的数?,(如:原子的直径),0.00000001,10,(1.0,10,x 10,-8,),有理数(如:循环小数),2/3 (0.666666666.),无理数,2,1/2,(1.414213562373.),无限不循环小数:,e(2.718.),(3.141.),3,科学计数法,6.02 x 10,23,根(,基数),小数点,规格化形式:,no leadings 0s(,小数点前仅有1位非0数字),1/1,000,000,000的不同表示形式:,规格化:1,.0,x 10,-9,非规格化:,0.1,x 10,-8,10.0 x 10,-10,尾数,阶,4,二进制的科学计数法,1.0,2,x,2,-1,根(基数),“,二进制小数点,”,尾数,阶,浮点数的算术运算,二进制小数点不是固定在某位上,C,语言中的,float,型数据,5,浮点数的计算机内部表示,规格化形式:,+,1,.,xxxxxxxxxx,2,*2,yyyy,2,字长的整数倍,(32,bits),0,31,S,Exponent,30,23,22,Significand,1 bit,8 bits,23 bits,S,表示,符号位,Exponent,表示,y,,即阶,Significand,表示,x,,,即尾数的后部分,十进制表示范围:,2.0,x 10,-38,至 2.0,x 10,38,6,上溢和下溢,上溢,数值太大(2.0,x10,38,),阶的值超出8位能表示的范围,下溢,数值太小,0,2.0,x10,-38,阶码超出了8位二进制位能表示的范围,如何减少,上溢,和,下溢,?,7,双精度浮点数,使用双字,(64,位),C,语言中的,double,类型,十进制的范围扩展到,2.0,x 10,-308,至 2.0,x 10,308,最主要的好处是精度得到了扩展,(52,位),0,31,S,Exponent,30,20,19,Significand,1 bit,11 bits,20 bits,Significand,(contd),32 bits,8,浮点数表示,规格化科学计数法:,+,1,.,xxxx,2,*2,yyyy,2,Significand(contd),0,S,Exponent,20,19,Significand,1 bit,11 bits,20 bits,32 bits,31,30,双精度,阶:,移码表示,有效数,:,符号,尾数表示,移码,127,(单精度),1023(,双精度),0,31,S,Exponent,30,23,22,Significand,1 bit,8 bits,23 bits,单精度,9,IEEE 754,浮点数标准,被几乎所有计算机采纳,(,自1980年起),符号位:,有效位:,使用原码表示,规格化小数中,隐含最高位1,单精度为:1,+23,位,双精度为,1+52 位,0 有效数,正数,阶:,0110,1000,2,=,104,10,移码校正:,104-127=-23,有效数:,1,+1,x2,-1,+0 x2,-2,+1x2,-3,+0 x2,-4,+1x2,-5,+.=1+2,-1,+2,-3,+2,-5,+2,-7,+2,-9,+2,-14,+2,-15,+2,-17,+2,-22,=1.0+0.666115,0,0110 1000,101 0101 0100 0011 0100 0010,十进制值:,1.666115*2,-23,1.986,*10,-7,14,浮点数十二进制转换,(1/2),简单情况:如果除数是2的整数倍,则比较简单,如:,-0.75,的二进制,-0.75=-3/4,-,11,2,/100,2,=-0.,11,2,规格化为:,-1.1,2,x 2,-1,(-1),S,x(1+,Significand,)x 2,(Exponent-127),(-1),1,x(1+.100 0000.0000)x 2,(126-127),1,0111 1110,100 0000 0000 0000 0000 0000,15,浮点数十二进制转换,(2/2),除数不是2的整数倍,该数无法精确表示,可能需要多位有效位来保证精度,难点:如何得到有效位?,循环小数有一个循环体,转换,求出足够多的有效位.,根据精度要求(单、双)截断多余的位。,按标准要求给出符号位、阶和有效位。,16,0.33333332,x 2,0,.66666664,0.66666666,x 2,1,.33333332,0.33333333,x 2,0,.66666666,转换举例,有效位:,101 0101 0101 0101 0101 0101,符号位:,负=,1,阶:1,+127=,128,10,=,1000,0000,2,1,1000 0000,101 0101 0101 0101 0101 0101,-3.3 3 3 3 3 3,=,-,1.1010101.x 2,1,1 1,.,0 1 0 1 0 1 0.,-,17,特殊的浮点数值,-(1-2,-24,)*2,128,(1-2,-24,)*2,128,-.5*2,-127,.5*2,-127,正溢出,负溢出,可表示的正数,可表示的负数,正下溢,负下溢,0,0,1111 1111,+/-,非0,1111 1111,NaN,非0,0000 0000,非规格化数,0,0000 0000,+/-0,有效数,阶,特殊值,18,Not a Number,下列结果是什么:,sqrt,(-4.0),or,0/0,?,如果无穷大不是错误的话,那以上也不算,称其为,N,ot,a N,umber(,NaN,),阶=255,有效位非0,应用,NaNs,可帮助排错,自包含:,op(,NaN,X)=,NaN,千万不要用它,请教数学家,19,非规格化数,问题:在0周围还有一些空隙没有用来表示浮点数,最小的正数:,a=1.0,2,*2,-126,=2,-126,次小的正数:,b=1.0 01,2,*2,-126,=2,-126,+2,-150,a-0=2,-126,b-a=2,-150,解决办法:,使用非规格化数:没有隐含的前导1,最小的正数:,a=2,-150,次小的正数:,b=2,-149,b,a,0,+,-,空隙!,0,+,-,20,舍入,浮点数的算术运算,=,舍入,类型转换时也需要舍入,Double,single precision,integer,向上舍入,2.001=3;-2.001=,-2,向下舍入,1.999=1;-1.999=,-2,截断,丢弃最后的位(向0舍入),21,浮点运算的特点,浮点加、减法不满足结合律!,x=1.5 x 10,38,y=1.5 x 10,38,and z=1.0,x+(y+z)=1.5x10,38,+(1.5x10,38,+1.0)=1.5x10,38,+(1.5x10,38,)=,0.0,(x+y)+z=(1.5x10,38,+1.5x10,38,)+1.0=(0.0)+1.0=,1.0,浮点数加法、减法不可结合,!,浮点数也不能进行相等比较!,为什么?浮点数算术运算的结果是近似值。,22,浮点数加、减法,不能只对尾数进行运算,算法,对阶,求阶差:,E=E,X,-E,Y,,,使阶码小的数的尾数右移,E,位,其阶码取大的阶码值;,对尾数进行加、减法,求得结果,保持阶的值,规格化,舍入,可能再次规格化,进行溢出检查(阶码),23,加、减运算举例,例1:,1.0110,2,3,+1.1000 2,2,对阶:,1.0110,2,3,+0.1100 2,3,加法:,10.0010,2,3,规格化:,1.0001,2,4,例2:,1.0001,2,3,-1.1110 2,1,对阶:,1.0001,2,3,-0.0111,1,2,3,减法:,0.1001,1,2,3,规格化:,1.0011,2,2,1.0010,2,2,24,浮点数乘、除法,算法,阶码加、减:,乘:,E,X,+E,Y,,,除:,E,X,-E,Y,对尾数进行乘、除法,求得结果,规格化,舍入,可能再次规格化,进行溢出检查(阶码),25,26,浮点运算部件,27,数据及数据类型,1.986,*10,-7,878,003,010,“4,UCB”,ADD R0,R1,计算机中的数据可以表示任何事情:指令、操作数等,由上层次的抽象计算机来判断。,对存储内容的错误理解:,将,ASCII,码当作浮点数,指令作为数据,整数可能成为指令,.,程序中的安全漏洞,0011,0100,0101 0101 0100 0011 0100 0010,28,小结,计算机中的浮点数是我们实际使用的数的,近似值,IEEE 754,浮点数标准是浮点数运算中广为接受的标准,浮点数运算一般由专门的浮点运算器完成,阶码运算,尾数运算,计算机中的二进制位只有在上下文才有意义,单独的一个字不代表任何含义。,29,检错纠错码,为了提高计算机的,可靠性,,除了采取选用更高可靠性的器件,更好的生产工艺等措施之外,还可以从数据编码上想一些办法,即采用一点冗余的线路,在原有数据位之外再,增加一到几位校验位,,,使新得到的码字带上某种特性,,之后则通过,检查该码字是否仍保持有这一特性,,来,发现,是否出现了错误,甚至于定位错误后,,自动改正,这一错误,这就是我们这里说的,检错纠错编码技术,。,30,几种常用的检错纠错码,我们只介绍两种常用的检错纠错码:,奇偶检错码,,用于,并行,数据传送中,海明检错与纠错码,,用于,并行,数据传送中,循环冗余码,用于,串行,数据传送中,编码过程,译码过程,传送,原始数据,码 字,结果数据,形成校验位的值,加进特征,检查接送的码字,发现 /改正错误,31,奇偶校验码,用于并行码,检错,原理:在,k,位数据码之外增加 1 位校验位,,使,K+1,位码字中取值为 1 的位数,总保持,为,偶数,(,偶校验,)或,奇数,(,奇校验,)。,例如:,0 0 0 1,1,0 0 0 1,0,0 0 0 1,0 1 0 1,0,0 1 0 1,1,0 1 0 1,原有数字位,两个新的码字,偶校验,奇校验,校验位,32,奇偶校验码的实现电路,+,奇校验,偶校验 出错指示,+,+,+,+,+,+,+,同左侧电路,编码电路,译码电路,P(,校验位),八位数据位,D7 D6 D5 D4 D3 D2 D1 D0,p,33,海明校验码,用于多位并行数据,检错纠错,处理,实现:为,k,个数据位设立,r,个校验位,,使,k,+,r,位的码字同时具有这样两个特性:,1.能发现并改正,k,+,r,位中任何一位出错,,2,.能 发 现,k,+,r,位中任何二位同时出错,但已无法改正。,34,海明码的编码方法,合理地用,k,位数据位形成,r,个校验位的值,即保证用,k,个数据位中不同的数据位组合来形成每个校验位的值,使任何一个数据位出错时,将影响,r,个校验位中不同的校验位组合起变化。换言之,通过检查是哪种校验位组合起了变化,就能确定是哪个数据位错,对该位求反则实现纠错。,有时两位错与某种情况的一位错对校验位组合的影响相同,必须加以区分与解决。,35,海明编码数据位与校验位关系,1.数据位有,k,位,校验位有,r,位,如要求可发现并改正一位错,则:2,r,个不同的编码中,至少,有1个编码来表示
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!