补码浮点数运算(设数的阶码为3位,尾数为6位(均不包括符号位)按机械补码浮点运算规则完成下列[x+y]补运算。)

简介: 补码浮点数运算(设数的阶码为3位,尾数为6位(均不包括符号位)按机械补码浮点运算规则完成下列[x+y]补运算。)

题目描述:设数的阶码为3位,尾数为6位(均不包括符号位)按机械补码浮点运算规则完成下列[x+y]补运算。

(1)x = 2011 x 0.100100, y = 2010 x (-0.011010)

(2)x = 2-101 x (-0.100100), y = 2-100 x (-0.010110)

(1)

x = 2011 x 0.100100, y = 2010 x (-0.011010)

第一步:

写出他们的浮点数,首先先把幂提取出来,然后再提出尾数,如果幂或者尾数是负数的话,就需要求他的补码。

[X]浮 = 00011 00.100100

详细过程:2011,取出001,然后前面补充两个0,如果是负数那么就是两个1,再然后再取尾数00.100100

[Y]浮 = 00010 11.100110

详细过程:2010,取出010,然后前面补充两个0,如果是负数那么就是两个1,再然后再取尾数,因为是负数所以需要对尾数取补码,然后双符号位变成11,11.100110

第二步:

求阶差并对阶

△E = Ex - Ey = [Ex]补 + [-Ey]补 = 00011 + 11110 = 00001

△E为1,代表x的阶码大,应使My右移一位,阶码加一,于是[Y]浮= 00011(这个时候X,Y的阶码就一样了),阶码+1了,那么对于尾数,这个小数点就要向左移动一位,于是11.100110变成了11.110011。

第三步:

尾数求和

00.100100

+11.110011

——————————

100.010111

第四步:

规格化

使得尾数部分成为双符号位,然后成为11.0或者00.1的形式,如果是这样的话就不需要规格化。

所以0.010111需要小数点右移一位,变成0.101110,因为小数点右移一位,所以阶码-1。

向左规格化一位,阶码减一,小数点右移一位

[X + Y]浮 = 00010, 00.101110

第五题:

判断溢出:无溢出

[X + Y]浮 = 00010, 00.101110

最后为[X + Y]补= 2010 x 0.101110

(2)

第一步:

x = 2-101 x (-0.100100), y = 2-100 x (-0.010110)

第一步:

写出他们的浮点数,首先先把幂提取出来,然后再提出尾数,如果幂或者尾数是负数的话,就需要求他的补码。

[X]浮 = 11011 11.011110

详细过程:2-101,取出101,求补码为011,然后前面补充两个1,因为是负数所以需要对尾数取补码,然后双符号位变成11,11.011110

[Y]浮 = 11100 11.101010

详细过程:2-100,取出100,求补码为100,然后前面补充两个1,再然后再取尾数,因为是负数所以需要对尾数取补码,然后双符号位变成11,11.101010

第二步:

求阶差并对阶

△E = Ex - Ey = [Ex]补 + [-Ey]补 = Ey - Ex = 11100 - 11011 = 00001

△E为1,代表x的阶码小,应使Mx移一位,阶码加一,于是[X]浮= 11100(这个时候X,Y的阶码就一样了),阶码+1了,那么对于尾数,这个小数点就要向左移动一位,于是11.011110变成了11.1011110。

第三步:

尾数求和

11.011110

+11.101010

——————————

111.0110010

第四步:

规格化

使得尾数部分成为双符号位,然后成为11.0或者00.1的形式,如果是这样的话就不需要规格化。

因为尾数为11.0

不需要格式化

[X + Y]浮= 11100, 11.011001

第五题:

判断溢出:无溢出

[X + Y]浮= 11100, 11.011001

因为阶码和尾数都是负数,所以需要求补码

最后为[X + Y]补= 2-100 x (-0.100111)

相关文章
|
6月前
|
存储
【机组期末速成】计算机的运算方法|进制转换|无符号数与有符号数|数的定点表示与浮点表示|定点运算
【机组期末速成】计算机的运算方法|进制转换|无符号数与有符号数|数的定点表示与浮点表示|定点运算
171 0
|
17天前
【编程基础知识】正数负数的二进制位运算(左移 右移 无符号右移)
正数和负数需转换成二进制后进行移位运算。左移低位补0,不影响符号位;右移符号位跟随移动,最高位还原为原符号位;无符号右移高位补0,适用于负数处理。
49 0
|
6月前
|
存储 C语言
用加法器实现补码的加/减运算
用加法器实现补码的加/减运算
121 0
|
机器学习/深度学习
什么是浮点数加减运算里的对阶,阶码和尾数
什么是浮点数加减运算里的对阶,阶码和尾数
|
机器学习/深度学习 存储
数据的表示:原码、反码、补码、移码以及浮点数的运算
数据的表示:原码、反码、补码、移码以及浮点数的运算
465 0
数据的表示:原码、反码、补码、移码以及浮点数的运算
|
存储
5.2.5_定点数的移位运算
计算机组成原理之定点数的移位运算
312 0
5.2.5_定点数的移位运算
二进制浮点数的加减法运算
二进制浮点数的加减法运算
|
存储
5.3.2_原补码的除法运算
计算机组成原理之原补码的除法运算
323 0
5.3.2_原补码的除法运算
|
算法 C语言
5.1.3_无符号整数的表示和运算
计算机组成原理之无符号整数的表示和运算
682 0
5.1.3_无符号整数的表示和运算
补码浮点数运算(设数的阶码为3位,尾数为6位(均不包括符号位)按机械补码浮点运算规则完成下列[x+y]补运算。)
设数的阶码为3位,尾数为6位(均不包括符号位)按机械补码浮点运算规则完成下列[x+y]补运算。(1)x = 2(2)x = 2x = 2:写出他们的浮点数,首先先把幂提取出来,然后再提出尾数,如果幂或者尾数是负数的话,就需要求他的补码。:2,取出001,然后前面补充两个0,如果是负数那么就是两个1,再然后再取尾数:2,取出010,然后前面补充两个0,如果是负数那么就是两个1,再然后再取尾数,因为是负数所以需要对尾数取补码,然后双符号位变成11,11.100110为1,代表x的阶码大,应使My。
1019 0