版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《计算机系统》浮点数《计算机系统》课程教学组2025年春季学期中国超算的高光时刻神威-太湖之光斩获戈登贝尔奖完全采用自主研发处理器芯片的神威-太湖之光,不仅接棒天河二号夺得了世界超算TOP500的冠军,更因其完全自主的处理器芯片、指令系统、编译系统和操作系统成为首台不采用美国芯片夺冠的中国超算。神威超算峰值性能12.54亿亿次浮点运算,持续性能9.3亿亿次浮点运算。神威以超强的运算性能支撑中国两个超算应用工程获得了戈登贝尔奖。天河二号连续六次称雄世界超算TOP50002015年11月16日,中国天河二号超算连续第6次获得世界超算TOP500第一名,性能达到平均每秒33.86千万亿次浮点运算。天河二号由国防科技大学研发,有16000个节点,每个节点有2颗基于IvyBridge-EXeonE52692处理器和3个XeonPhi,总计有312万个计算核心。同年,美国宣布禁售中国Xeon芯片,天河二号升级受阻。天河二号浮点运算是衡量超算性能的主要指标浮点数就是科学计数法形式的二进制实数43512二进制小数IEEE浮点数标准示例与性质舍入与运算C语言中的浮点数内容提要小数的概念
历史故事早在公元260年左右,中国数学家刘徽就创立了十进分数制表示小数。他在采用割圆法计算圆周率的时候使用了尺、寸、分、厘、毫、秒,忽7个单位来表示比整数更小的数。二进制小数2i2i-14211/21/41/82-jbibi-1•••b2b1b0b-1b-2b-3•••b-j•••表示方法二进制小数点右侧的“位”表示2的分数幂(负幂)可表示形如:的有理数••••••思考:1011.1012?答案:
1011.1012=8+2+1+0.5+0.125=11.625窍门:小数部分写成分数,分母为2k,k为小数位,分子为小数部分二进制的值。即:.1012=5/8=0.625二进制小数举例观察小数点右移一位——乘2小数点左移一位——除2形如
0.111111…2
表示刚好小于1.0的数1/2+1/4+1/8+…+1/2i+…➙1.0也可以简单的用
1.0–ε来表示十进制二进制53/4
101.11227/8
10.1112113/16
1.11012二进制小数表示范围限制只能精确表示诸如x/2k的数其他的值只能近似表示Value
Representation1/3 0.0101010101[01]…21/5 0.001100110011[0011]…21/10 0.0001100110011[0011]…243512二进制小数IEEE浮点数标准示例与性质舍入与运算C语言中的浮点数内容提要IEEE浮点数IEEE754标准于1985建立(之前由每个计算机制造商设计自己的规则)支持所有主流的CPU面向数字运算的精确性支持舍入,溢出等操作定义在一组小而一致的规则上——相当优雅,容易理解IEEE浮点数数学形式:
(–1)s
M2E符号位S(Sign)确定了这个数是负数还是正数,数值0的符号位特殊处理尾数M(Significand)
是一个二进制小数,通常规定在
范围[1.0,2.0)中。阶码
E
(Exponent)表示2的幂sexpfrac符号阶码尾数浮点数类型单精度:32bits双精度:64bits扩展精度:80bits(Intelonly)sexpfrac18-bits23-bitssexpfrac111-bits52-bitssexpfrac115-bits63or64-bits浮点数表示方法类别1:规格化值判断条件:exp≠000…0且exp≠111…1,即:阶码不为全0或全1阶码字段被解释为以偏置(
biased)形式表示的有符号整数:E=Exp–BiasExp:无符号数
exp
Bias=2k-1-1,其中k为阶码位数(单精度:127,双精度:1023)尾数:
M=(1.xxx…x)2
xxx…x:frac的位表示最小值
000…0(M=1.0)最大值:111…1(M=2.0–ε)规格化值示例值:FloatF=15213.0;1521310=111011011011012=1.11011011011012x213尾数M = 1.11011011011012frac = 110110110110100000000002阶码E = 13Bias = 127Exp = 140 = 100011002Result:
01000110011011011011010000000000符号阶码尾数浮点数表示方法类别2:非规格化值判断条件:exp=000…0即:阶码为全0阶码:E=1–Bias (为了非规格化与规格化值之间的平滑过渡)尾数:
M=(0.xxx…x)2
(xxx…x:frac的位表示)例如:exp=000…0,frac=000…0,此时值为“0”,符号位决定“+0”或者“-0”Exp=000…0,frac≠000…0,此时为非常接近0.0的数浮点数表示方法类别3:特殊值判断条件:exp=111…1,
即:阶码为全1情况1:exp=111…1,frac=000…0,表示的是无穷大,由符号位决定是“+∞”还是“-∞”可用来表示溢出结果,例如1.0/+0.0=+∞;1.0/-0.0=-∞情况2:exp=111…1,frac≠000…0,表示的是不是一个数(NaN),用来表示一些无法表示的数,例如:sqrt(-1),∞-∞,∞*∞浮点数表示方法M为全0M不为全0,NaNS=0,+∞S=1,-∞E为全1E非全0,非全1
规格化数E为全0
非规格化数阶码E浮点数表示范围+∞−∞
0+Denorm+Normalized−Denorm−Normalized+0NaNNaN43512二进制小数IEEE浮点数标准示例与性质舍入与运算C语言中的浮点数内容提要浮点数示例8-位浮点数表示一位符号位四位阶码位三位尾数位sexpfrac14-bits3-bitsIEEE规范规格化数,非规格化数能够表示0,NaN,无穷浮点数示例最小的非规格化数(接近0)最大的非规格化数最小的规格化数从下最靠近1从上最靠近1最大的规格化数非规格化数规格化数sexpfrac E
Value
00000000 -6 000000001 -6 1/8*1/64=1/51200000010 -6 2/8*1/64=2/512……
……00000110 -6 6/8*1/64=6/51200000111 -6 7/8*1/64=7/51200001000 -6 8/8*1/64=8/51200001001 -6 9/8*1/64=9/512……
……00110110 -1 14/8*1/2=14/1600110111 -1 15/8*1/2=15/1600111000 0 8/8*1=100111001 0 9/8*1=9/800111010 0 10/8*1=10/8……
……01110110 7 14/8*128=22401110111 7 15/8*128=24001111000 n/a inf取值分布6位浮点数表示
e=33位阶码f=22位尾数Bias38valuessexpfrac13-bits2-bits取值分布(局部放大)6位浮点数表示
e=33位阶码f=22位尾数Bias3sexpfrac13-bits2-bits100000 -0100001 -1/16100010 -2/16100011 -3/16+0000000 1/160000012/16000010 3/16000011 浮点数属性描述阶码尾数数值000…000…000.0最小的非规格化正数Single≈1.4x10–45Double≈4.9x10–32400…000…012–{23,52}x2–{126,1022}最大的非规格化正数Single≈1.18x10–38Double≈2.2x10–30800…0011…11(1.0–ε)x2–{126,1022}最小的规格化正数正好比最大的非规格化正数大100…0100…001.0x2–{126,1022}101…1100…001.0最大的规格化正数Single≈3.4x1038Double≈1.8x1030811…1011…11(2.0–ε)x2{127,1023}43512二进制小数IEEE浮点数标准示例与性质舍入与运算C语言中的浮点数内容提要浮点运算思路x+fy=Round(x+y)x
fy=Round(x
y)基本思路首先计算精确结果然后通过“舍入”来得到近似结果浮点运算溢出溢出由于浮点数的表示方式是有限位数的二进制(单精度32位,双精度64位),在运算时也会出现整数运算中同样的溢出现象。1966年6月4日,Ariane5火箭初次航行。由于软件工程师没有考虑浮点数溢出的问题,控制系统出现了致命错误,导致了灾难性的后果:发射后仅仅37秒,火箭解体并爆炸,火箭上搭载的价值5亿美元的通信卫星也付之一炬。浮点数的舍入
舍入方式()
$1.40 $1.60 $1.50 $2.50 –$1.50Towardszero $1 $1 $1 $2 –$1Rounddown(−
) $1 $1 $1 $2 –$2Roundup(+
) $2 $2 $2 $3 –$1NearestEven(默认) $1 $2 $2 $2 –$2各种模式的优点是什么?向偶数舍入能找到最接近的匹配值;其它三种用于计算上界和下界。向偶数舍入缺省的舍入方案指的是中间值应当向偶数舍入,其他的方案都会产生统计偏差也可以舍入到其他数位中间值舍入到偶数例如:舍入到百分位 1.2349999 1.23 (Lessthanhalfway) 1.2350001 1.24 (Greaterthanhalfway)
1.2350000 1.24 (Halfway—roundup) 1.2450000 1.24 (Halfway—rounddown)二进制舍入二进制数舍入“偶数”是指
0“中间值”是指舍入位的右边正好是
100…2的形式例如:舍入到1/4(小数点右边两位)Value Binary Rounded Action RoundedValue23/32 10.000112 10.002 (<1/2—down) 223/16 10.001102 10.012 (>1/2—up) 21/427/8 10.111002 11.002 (1/2—up) 325/8 10.101002 10.102 (1/2—down) 21/2浮点数乘法(–1)s1
M12E1x(–1)s2
M22E2精确结果:(–1)s
M2E符号位
s: s1^
s2尾数M: M1x
M2阶码
E: E1+
E2调整如果M≥2,M
右移一位,E=E+1如果
E超出表示范围,溢出将M
舍入到frac
的位数范围浮点数加法①对阶,小阶向大阶对齐②尾数进行加法运算③结果规格化并进行舍入处理④判断溢出浮点数加法①对阶,小阶向大阶对齐两个浮点数进行加减运算时,首先要使两个数的阶码相同,即小数点的位置对齐。若两个数的阶码相同,表示小数点的位置是对齐的,就可以对尾数进行加减运算。反之,若两个数的阶码不相同,表示小数点的位置没有对齐,此时必须使两个数的阶码相同,这个过程称为对阶。将原来阶码小的数的尾数右移|△E|位,其阶码值加上|△E|,即每右移一次尾数要使阶码加1,则该浮点数的值不变(但精度变差了)浮点数加法②尾数进行加法运算实现尾数的加运算,对两个完成对阶后的浮点数执行求和操作。浮点数加法③结果规格化并进行舍入处理如果尾数不是规格化数,则需要进行规格化处理,并进行舍入。④判断溢出根据阶码来判断是否溢出浮点数加法的数学特性与阿贝尔群比较有交换性没有结合性(由于舍入)3.14+1e10-1e10=0
vs.3.14+(1e10-1e10)=3.14单调性a≥b⇒a+c≥b+c?Exceptforinfinities&NaNs浮点数乘法的数学特性可交换性a*b=b*a不可结合性a*b*c≠a*(b*c)不具备分配性a*(b+c)≠a*b+a*c单调性a≥b&c≥0⇒a*c≥b*c(Exceptforinfinities&NaNs)43512二进制小数IEEE浮点数标准示例与性质舍入与运算C语言中的浮点数内容提要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- KIN1148-Standard-生命科学试剂-MCE
- T-CNEA 249.1-2024 核工业用锆及锆合金化学分析方法 第1部分:碳量的测定 高频燃烧红外吸收法
- 2026年坚持自己测试题及答案
- 2026年工商管理测试题及答案
- 2026年工程面试测试题及答案
- 2026年centos8测试题及答案
- 2026年心动网络测试题及答案
- 2026年如何弄心理测试题及答案
- 2026年临床血液检验测试题及答案
- 2026年米与厘米测试题及答案
- 石油钻井工程技术规范
- 2026年高考语文备考之60篇背诵古诗文默写高频考查名句汇编
- 四川兆迪水泥窑协同处置一般固废项目环境影响报告表
- 2025~2026学年北京市西城区人教版六年级下学期小升初毕业考试数学试题【含解析】
- 全科医学科慢性病管理指导
- 中粮集团秋招面试题及答案
- 【普通高中数学课程标准】日常修订版-(2017年版2025年修订)
- 土木工程施工课后习题答案
- ISO9001-2026质量管理体系中英文版标准条款全文
- 《土木工程智能施工》课件 第3 章 土方工程-土方开挖与填筑
- 2025向量化与文档解析技术加速大模型RAG应用
评论
0/150
提交评论