Lecture 13:浮点数标准

IEEE 浮点数标准的表示与运算

浮点数标准

浮点数格式

IEEE 754标准

信息
  1. 对于上溢、下溢、舍入规范定义比较好
  2. 但是难以较快执行
    1. 说明在当时定义标准上数值计算人员的话语权>硬件设计人员
小数的二进制表示法则

image.png

特殊例子——左移表示乘2、右移表示除2

image.png

image.png

局限性:只能精确表示形式为x2k\frac{x}{2^k}的数,其他形式的数都会被表示成无限小数

image.png

浮点表示法

image.png

对于这个浮点数的结构而言,同时也引入了约定俗成的规范

image.png

  1. 指数编码需要偏置值以便于把负指数映射到正数域中,以便于比较大小
    1. 通常这个偏置的值取指数的位宽所能表示的数的最大值除以2附近的值
提醒

例如对于单精度 exp8位,最大指数位为281=2561=2552^8 - 1 = 256-1 = 255,指数位的数值取值范围是[0,255][0, 255]

需要映射到[126,127][-126,127]这个范围之内,因此需要加偏置bias = 127

  1. 这个值对于一个位宽为e的数来说2e11{2^{e-1} - 1}
提醒

例如对于 exp e位,最大指数位为2e12^e - 1,指数位的数值取值范围是[0,2e1][0, 2^e - 1],去除头和尾(000...0 111...1)之后就是[1,2e2][1, 2^e - 2],左右两边同时减去2e11(=2e22){2^{e-1} - 1}(= \frac{2^e - 2}{2})即可得到原来的指数位[(2e2),2e1][-(2^e - 2), 2^e - 1],所以偏置值就是2e11{2^{e-1} - 1}

  1. 尾数(小数点)编码忽略了前导位1,即尾数编码只考虑小数点之后的部分
举例说明

image.png

非规范数

image.png

  1. 非规范数就是指数位全部是0,即当指数位全部是0的时候,进入非规范表示法
  2. 此时代表指数位数为1-Bias ,小数将表示为0.xxxx 注意此时是0.x 是以0开头的0.x
  3. 精度丧失问题 image.png
举例说明

image.png

特殊值

image.png

  1. 当指数位全是1时,若小数位全是0,那么则代表无穷,正负无穷由符号位决定
  2. 当指数位全是1,但小数位不为0时,代表无法确定的数值NAN

总结

编码范围

image.png

数值分布

image.png

image.png

Lecture 6:Behavioral Modeling,非阻塞赋值
飞起来1.0

评论区