浮点数加法器设计

一.设计内容及其要求

内容

根据浮点数的运算规则和IEEE754标准,实现浮点数的加法运算器。

要求:

  • 浮点数格式:符号位1位,阶码8位,尾数23位
  • 要求该实验能完整的体现浮点数的运算的五个步骤:对阶、尾数求和、规格化、舍入(要求使用对偶舍入)、溢出判断。

二.基本要素

浮点数

浮点数即实数,实数是所有有理数和无理数的集合。它之所以被称作浮点数,是因为小数点在数中的位置并不是固定的。一个浮点数值分为两部分存储:数值以及小数点在数值中的位置。

计算机中的浮点运算的计算结果一般是不确定的,一块芯片的浮点运算结果可能和另一块芯片的运算结果是不一样的。

科学计数法

科学计数法用来表示很大或很小的数。

十进制浮点数可以表示为:尾数×10指数,如1.23456×1020尾数×10^{指数},如1.23456×10^{20}×101.23456×1020

二进制浮点数可以表示为:尾数×2指数,如1.00011×25尾数×2{指数},如1.00011×2^{5}×21.00011×25

IEEE 754浮点数标准提供3中浮点数表示:32位单精度浮点数、64位双精度浮点数、128位四精度浮点数。这里设计浮点加法器主要用32位单精度浮点数,想要实现64位或者128位浮点数的加法,它们的原理和32位单精度浮点数的加法器是类似的。

规格化浮点数

IEEE 754浮点数的尾数总是规格化的,其范围为1.000...0×2e−1.111...1×2e1.000...0×2^e - 1.111...1×2^e1.000...0×2e1.111...1×2e,e为指数。

规格化浮点数的最高位总是1,规格化使尾数的所有位都是有效的,因而尾数精度更高。

如:0.10...×2e规格化为1.10...×2e−110.1...2e规格化为1.01...×2e+10.10...×2^e规格化为1.10...×2^{e-1}\\10.1...2^e规格化为1.01...×2^{e+1}0.10...×2e1.10...×2e110.1...2e1.01...×2e+1

尾数规格化充分利用了可用的最大精度。如,一个8位非规格话的尾数0.0000101只有4位有效位,而规格化后的8位尾数1.0100011则有8位有效位。

偏置指数

IEEE 754浮点数的尾数被表示为符号及值的形式,即用一个符号位表示它是正数还是负数。它的指数则用偏置方式表示,即给真正的指数加上一个常数。

已知32位单精度浮点数的指数部分是8位,则偏置值为127。如果一个数的指数为0,则被保存为0+127=1270+127=1270+127=127。如果指数为-2,则被保存为−2+127=125-2+127=1252+127=125

实数1010.1111规格化的结果为1.010111×231.010111×2^31.010111×23,指数为3,将被保存为3+127=1303+127=1303+127=130

这种用偏置表示指数的方法优点在于:最小的负指数被表示为0,如果不采用这种方法,0的浮点表示为0.0...0×2最小负指数0.0...0×2^{最小负指数}0.0...0×2 。采用偏置指数。0就可以用尾数0和指数0表示:
在这里插入图片描述

IEEE浮点数

内容

一个32位IEEE 754单精度浮点数可以被表示为下面的二进制串:

S EEEEEEEE 1.MMMMMMMMMMMMMMMMMMMMMMM

  • S为符号位,指明这个数是正数还是负数
  • E为8位偏置指数,指出了小数点的位置
  • M为23位尾数

在这里插入图片描述

S作为符号位,决定了数的符号,若S=0,则为正数,若S=1,则为负数。指数E将浮点数的尾数扩大或缩小2E2^E2E 倍,并且偏置值为127。

如浮点数1.11001...0×2121.11001...0×2^{12}1.11001...0×212的指数为12+127=13910=10001011212+127=139_{10}=10001011_212+127=13910=100010112

IEEE浮点数的尾数总是规格化的,其值范围在1.0000..00−1.1111..111.0000..00-1.1111..111.0000..001.1111..11 ,除非这个浮点数是0,此时尾数为0.000..000.000..000.000..00

由于尾数总是规格化的,且最高位总是为1,因此将尾数存入存储器时没有必要保存最高位的1。所以,一个非0的IEEE 754浮点数可被定义为:X=(−1)S×2E−B×1.FX=(-1)^S×2^{E-B}×1.FX=(1)S×2EB×1.F ,其中:

  • S符号位
  • E:偏置量为B的指数
  • F:尾数的小数部分(实际的尾数为1.F,有个隐含的1)

ps:浮点数0被表示为S=0,E=0,M=0(即浮点数0用全0表示)

格式

IEEE 754标准定义了基本的和扩展的浮点数格式,以及一组数量有限的算术运算的规则(加、减、乘、除、平方根、求余和比较)。

非数(Not a Number,NaN)是IEEE 754标准提供的一个专门的符号,表示IEEE 754标准格式所不能表示的数。

img

img

img

img

image

在32位IEEE 754单精度浮点数格式中,最大指数

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Phoenix_ZengHao

创作不易,能否打赏一瓶饮料?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值