一.设计内容及其要求
内容
根据浮点数的运算规则和IEEE754标准,实现浮点数的加法运算器。
要求:
- 浮点数格式:符号位1位,阶码8位,尾数23位
- 要求该实验能完整的体现浮点数的运算的五个步骤:对阶、尾数求和、规格化、舍入(要求使用对偶舍入)、溢出判断。
二.基本要素
浮点数
浮点数即实数,实数是所有有理数和无理数的集合。它之所以被称作浮点数,是因为小数点在数中的位置并不是固定的。一个浮点数值分为两部分存储:数值以及小数点在数值中的位置。
计算机中的浮点运算的计算结果一般是不确定的,一块芯片的浮点运算结果可能和另一块芯片的运算结果是不一样的。
科学计数法
科学计数法用来表示很大或很小的数。
十进制浮点数可以表示为:尾数×10指数,如1.23456×1020尾数×10^{指数},如1.23456×10^{20}尾数×10指数,如1.23456×1020
二进制浮点数可以表示为:尾数×2指数,如1.00011×25尾数×2{指数},如1.00011×2^{5}尾数×2指数,如1.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×2e−1.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...×2e规格化为1.10...×2e−110.1...2e规格化为1.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=125−2+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..00−1.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×2E−B×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标准格式所不能表示的数。





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


67

被折叠的 条评论
为什么被折叠?



