版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#16CalrollsoverOSU
BehindthearmofNate
Longshore’s341ydspassing&4TDs,theBearsroll41-13.RecalltheystoppedourwinningstreakLASTyear...Nextwk#11Oregon@home.GoBears!MachineStructures
Lecture8
FloatingPointI
Quoteoftheday“95%ofthe
folksoutthereare
completelycluelessaboutfloating-point.”
JamesGosling
SunFellow
JavaInventor
1998-02-28数的小结计算机是用来处理数的inN位可以表示些什么?2N个东西,不会更多!他们可以是…Unsignedintegers:
0 to 2N-1(forN=32,2N–1
=4,294,967,295)SignedIntegers(补码)
-2(N-1)
to 2(N-1)-1(forN=32,2(N-1)=2,147,483,648)Whataboutothernumbers?很大的数? (seconds/millennium)
31,556,926,00010(3.155692610x1010)很小的数?(Bohrradius)
0.000000000052917710m(5.2917710x10-11)既有整数部分又有小数部分的数?
1.5首先考虑3.…其解也可以用来解决1和2.表示小数部分“二进制小数”:和10进制小数点一样,指定整数和小数间的边界xx.yyyy21202-12-22-32-4例:6位表示10.10102=1x21+1x2-1+1x2-3=2.62510假定以上“固定小数点”,6位这样的格式可以表达: 0to3.9375(almost4)2的幂次的倒数可以表示的分数0 1.0 10.5 1/20.25 1/40.125 1/80.0625 1/160.03125 1/320.0156250.00781250.003906250.0019531250.00097656250.000488281250.0002441406250.00012207031250.000061035156250.000030517578125i2-i定点法表示小数.加法和乘法结果对吗?加法的结果:01.1001.51000.1000.51010.0002.010乘法会更复杂一些:
01.1001.51000.1000.51000000000000110000000000000000110000HILOW答案是,0.11?(需要记住小数点的位置)表示小数目前为止,表示小数,我们用的是小数点固定的方法,但我们真正需要的是让小数可以“浮动”.Why?浮点数能更有效地使用有限的位数(从而在表示数时精度更高):…000000.001010100000…其它方案将损失精度!例:
将0.1640625表为二进制.5位,确定小数点位置.保存这5位,并记下其位置为小数点后2位对于浮点表示,每个数都包含一个字段记录小数点的位置.小数点可在有效位之外,因此可表示很大的数和很小的数.科学记数法(10进制)6.0210x1023radix(base)decimalpointmantissaexponent规范化形式:无前导0(小数点左边有且仅有一位非零数字)表示1/1,000,000,000的几种形式规范化: 1.0x10-9非规范化: 0.1x10-8,10.0x10-10
科学记数法(二进制)1.0twox2-1radix(base)“binarypoint”exponent计算机有专门的算术指令支持这种数的运算,称为floatingpoint,因为其所表示的数的小数点是不固定的,这和整数不一样在C语言中用
float来声明该变量类型mantissa浮点表表示(0/2)普通形形式:x.xxxxxxxxxxtwo*2yyyytwo031s?Exponent2423sign?Significand8bits24bits031s?Exponent87sign?significand8bits?24bits?浮点表表示(1/2)规范化化形式式:+1.xxxxxxxxxxtwo*2yyyytwo字的倍倍数(32位)031SExponent302322Significand1bit8bits23bitsS代表SignExponent表示y’sSignificand表示x’s最小可可表达达2.0x10-38,最大可可表达达2.0x1038浮点表表示(2/2)如果结结果太太大,,怎么么办?(>2.0x1038,<-2.0x1038)Overflow上溢!正指数数大于于8位指数数字段段可表表示范范围如果结结果太太小,,怎么么办?(>0&<2.0x10-38,<0&>-2.0x10-38)Underflow!下溢负指数数大于于8位指数数字段段可表表示范范围如何减减少上上下溢溢出的的机会会?02x10-382x10381-1-2x10-38-2x1038underflowoverflowoverflow双精度度浮点点表示示DoublePrecision字的二二倍长长(64位)对精度度(vs.单精度度)C变量,,用double声明可表示示的最最小数数为2.0x10-308,最大大数为为2.0x10308但,根根本的的好处处是有有效位位更多多,从从而精精度更更高031SExponent302019Significand1bit11bits20bitsSignificand(cont’d)32bits四精度度浮点点数表表示QuadPrecision字的四四倍(128bits)UnbelievablerangeofnumbersUnbelievableprecision(accuracy)目前前正正在在制制定定规规范范(IEEE754r)目前前的的版版本本是是15位指指数数,,112个有有效效位位(113位精精度度)八精精度度Oct-Precision?Somehavetried,norealtractionsofar半精精度度Half-Precision?Yep,that’’sforashort(16bit)IEEE754浮点点数数标标准准(1/3)单精精度度(双精精度度类类似似):+1.xxxxxxxxxxtwo*2yyyytwoSignbit:1表示示负负数数0表示示正正数数有效效位位Significand:想多多一一些些有有效效位位,对规规范范化化数数,,前导导1缺省省单精精度度有有1+23位,双精精度度有有1+52位对于于规规范范化化数数恒恒有有:0<Significand<1有问问题题吗吗??0怎么么表表示示呢呢??指数数的的符符号号如如何何表表示示??补补码码吗吗??符号号位位为为什什么么不不与与有有效效位位联联在在一一起起,,为为什什么么不不使使用用补补码码??031SExponent302322Significand1bit8bits23bitsIEEE754浮点点标标准准(2/3)指数数部部分分使使用用偏移移表表示示BiasedNotation,意即即从从指指数数中中减减去去一一常常量量得得到到真真实实的的数数IEEE754对单单精精度度数数使使用用偏偏移移值值为为127.即真真实实的的指指数数为为Exponent字段段减减去去127得到到对双双精精度度其其偏偏移移为为1023小结结(单精精度度数数):031SExponent302322Significand1bit8bits23bits(-1)Sx(1+Significand)x2(Exponent-127)双精精度度是是一一样样的的,,只只是是指指数数偏偏移移为为1023(半精精度度,四精精度度类类似似)IEEE754浮点点标标准准(3/3)IEEE754使用用“偏偏移移指指数数biasedexponent””表示示的的原原因因.与整整数数((序序))兼兼容容::就就同同样样的的位位模模式式来来说说,,大大的的浮浮点点数数对对应应于于大大的的整整数数,,从从而而即即使使没没有有浮浮点点硬硬件件,,也也可可以以使使用用整整数数运运算算,,来来比比较较两两个个浮浮点点数数,,实实现现排排序序大指指数数字字段段表表示示大大数数.011000000ssssss和001000000ssssss谁大大如果果用用补补码码就就会会出出问问题题(因为为负负数数看看来来更更大大一一些些)后面面,,我我们们将将看看到到浮浮点点数数的的演演化化顺顺序序和和整整数数是是完完全全一一样样的的即.,二进进制制数数从从00……00到11……11,而而浮浮点点数数从从0到+MAX到-0到-MAX到0浮点点数数标标准准之之““父父””IEEE754二制制浮浮点数算算术标准准.…/ieee754status/754story.htmlProf.Kahan1989
ACMTuring
AwardWinner!一流企业业做标准准,二流流企业做做品牌,,三流企企业做产产品例:二进制表表示的浮浮点数转转换成10进制Sign:0=>positiveExponent:01101000two=104ten偏移调整整:104-127=-23Significand:1+1x2-1+0x2-2+1x2-3+0x2-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.666115001101000Represents:1.666115ten*2-23~1.986*10-7(about2/10,000,000)例:10进制数转转换成浮浮点数去规范化化:-23.40625转换整数数部分:23=16+(7=4+(3=2+(1)))=101112转换小数数部分:.40625=.25+(.15625=.125+(.03125))=.011012两部分合合在一起起,并规规范化:10111.01101=1.011101101x24转换指指数部部分:127+4=10000011211000001101110110100000000000000-2.340625x101理解有有效位位Significand(1/2)方法1(小数法):10进制数:0.3401034010/1000103410/100102进制数:0.11021102/10002=610/810112/1002=310/410好处处:少一一些些数数字字,更多多一一些些思思想想;这种种方方法法可可以以帮帮助助我我们们更更好好地地理理解解有有效效位位理解解有有效效位位Significand(2/2)方法法2(位置置值值):从科科学学计计数数法法转转换换而而来来的的10进制制:1.6732=(1x100)+(6x10-1)+(7x10-2)+(3x10-3)+(2x10-4)2进制数: 1.1001=(1x20)+(1x2-1)+(0x2-2)+(0x2-3)+(1x2-4)针对数数值距距离小小数点点的位位置来来解释释数值值好处:能更快快地求求得有有效位位的值值;使用该该方法法转换换浮点点数1:-1.752:-3.53:-3.754:-75:-7.56:-157:-7*2^1298:-129*2^7课堂练练习上面浮浮点数数表示示的10进制数数是?11
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026南平市建阳公证处编外人员招聘3人笔试模拟试题及答案详解
- 2026广东韶关市始兴县统计局招聘统计人员1人笔试备考试题及答案详解
- 2025年农业发展银行(广西壮族自治区分行)校园招聘笔试考试试题及答案详解
- “国资赣将”赣州发展投资控股集团2026年第一批公开招聘笔试备考题库及答案详解
- 2025年杭州银行(舟山分行)校园招聘笔试考试试题及答案详解
- 2026四川凉山州美姑县应急管理局招聘工作人员1名笔试参考题库及答案详解
- 2026贵州黔东南州从江县中医医院招聘编外合同制工作人员5人笔试备考题库及答案详解
- 2026甘肃定西岷县人民医院康复技师招聘2人笔试备考题库及答案详解
- 2026中国工商银行湖北省分行星令营暑期实习笔试模拟试题及答案详解
- 2026四川省中医药科学院中医研究所招聘11人笔试备考试题及答案详解
- 《西方哲学智慧》第十四讲:黑格尔哲学课件
- 2024年中智集团招聘笔试参考题库含答案解析
- 《相见欢无言独上西楼》课件
- 医院网络信息安全ppt
- DB13T 5714-2023 道路运输企业安全生产风险分级管控规范
- 建筑工程项目汇报ppt
- 2023年江苏第二师范学院招聘工作人员17人笔试备考试题及答案解析
- 输电线路工程组塔施工质量控制
- 最新人教部编版六年级下册语文《古诗词诵读:春夜喜雨》教学课件
- 公共伦理学(第三版)-课件
- 国家电网有限公司十八项电网重大反事故措施(修订版)
评论
0/150
提交评论