其他分享
首页 > 其他分享> > 计算机组成原理专题之浮点数运算

计算机组成原理专题之浮点数运算

作者:互联网

计算机组成原理专题之浮点数运算

我们组原老师也甚是神奇。ppt一发,博客链接一发。大家自己看ppt,看ppt有困难的同学看博客链接。。。我一脸懵。。。
真的,例题我看不懂。。。不是假话。。然后我就一个概念一个概念的处理了。。

进行浮点加减法运算时,需要完成0操作数检查,对阶,尾数求和,结果规格化,舍入处理,溢出处理等步骤。
这里介绍几个概念:
双符号位:是检查计算机运算溢出的。是采用双符号位。00表示正号,11表示负号。
如果最高位进位讲导致符号位不一致。
结果的符号位有两种01和10.
结果的符号位为01时:为上溢
结果符号位为10时:为下溢
什么是上溢什么是下溢:
百度解释的很官方。。
上溢:是当一个超长的数据进入到缓冲区时,超出部分被写入上级缓冲区,上级缓冲区存放的可能是数据、上一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。
下溢:是当一个超长的数据进入到缓冲区时,超出部分被写入下级缓冲区,下级缓冲区存放的是下一条指令的指针,或者是其他程序的输出内容。
这么官方的解释让我一个学计科的都很懵。。。(可能是我学艺不精)
简单点:
产生下溢的时候是接近0的时候被四舍五入为0的时候
产生上溢的时候是很大的数字被近似为正无穷或者负无穷。

比如这个例子:
例如设X = + 1000001,Y = + 1000011,采用双符号位表示X=00 1000001,Y=00 1000011,[X + Y]补=01 0000100,01运算结果产生了正溢出。
那么什么时候会产生溢出呢?
当两个同符号的数相加(或者是相异符号数相减)时,运算结果有可能产生溢出。常用的溢出检测机制主要有进位判决法和双符号位判决法。
再比如相异符号数相减时:
设x=0.1101,y=-0.0111,符号位为双符号位 ,用补码求x-y
[x-y]补=[x]补+[-y]补=00 1101+00 0111=01 0100 结果错误,正溢出

浮点数的常用表示方法:
N = R^E * M
N为浮点数,R为基底,E为阶码,M为尾数。
比如:1
2为R,基底,010为E,阶码,0.11011011为M,尾数

浮点数加减法运算的时候均用补码形式。因为计算机内部都是采用补码形式。
变形补码。因为原码看不出来正数负数。
补码可以识别正数和负数。
这里采用的都是符号位两位,阶码双符号位,尾数双符号位。(上面说的)

1.对阶
就是把阶码小的转换为阶码大的。小阶向大阶看齐。
如1.1 * 2 ^ 3 和 1.2 * 2 ^ 4
就是把1.1*2^3,把尾数右移一位。阶码加1。
比如:
1
2
这里采用补码表示:
阶码双符号位表示:
[X]浮 = 00 010
[Y]浮 = 00 100
尾数双符号位表示:
[X]浮 = 00.11011011
Y的原码:11.10101100
Y的反码:11.01010011
Y的补码:11.01010100
[Y]浮 = 11.01010100

Y的阶码:
这里相减相当于加上负数
[-Y]原 = 11 100
[-Y]反 = 11 011
[-Y]补 = 11 100
我们把阶码对阶。就是E = Ex - Ey = 00010 + 11 100 = 11 110
把这个补码转换为原码得:11 010
即为-2
那么是X的阶码小,将X的尾数右移两位,X的阶码加2
所以[X]浮 = 00100,00.00110110(11)

2.尾数求和
3
如果是相减的化,相当于加上减数的相反数。就是把减数转化为对应的相反数的补码相加即可

3.规格化
分为右规和左规
两个符号位不同的时候右规。就是我上面说的情况除了00或者11其余是符号位不相同的情况。
即01 …和 10 …
以上两种情况将其右移。
即01…右移一位是001…
即10…右移一位是110…
然后阶码加1

两个符号位相同但是最高位的数值与符号位相同就是左规
两种情况就是111…和000…
111…左移1位的结果为11…0
000…左移1位的结果为00…0
然后阶码需要减去移动次数。

上述式子需要左规
4
左移1位阶码减1
变为:
1.00010101(10)
阶码减1

4.舍入
舍入有0舍1入法,恒舍法,置1法

比如上式采用0舍1入法
因为
5
最高位为1
需要入1
为:

6
如果需要被舍去的最高位为0,那么直接舍去就可以了

5.判断溢出
阶码的符号位为00或者01则不溢出
只需要判断阶码是否溢出即可,尾数不需要判断溢出。只是当前不是规格化数而已
判断阶码溢出方式上面已经提到
01为上溢。置溢出标致
10为下溢。置运算结果为0,阶码和尾数均为0

好啦~
这就是浮点数的加减法运算啦~
若有不足和改进望指点呀~

标签:11,阶码,00,专题,运算,符号,浮点数,补码,溢出
来源: https://blog.csdn.net/qq_44624316/article/details/104729667