已知:X=-6.25,Y=9.625 (1)、将X、Y分别转换成二进制浮点数(阶码和尾数均用补码表示,其中阶码占4位,尾数占8位,各包含一位符号位)。 (2)、用变形补码,求X-Y=?(舍入采用恒舍法,结果用二进制和十进制两种方法表示。)
时间: 2023-12-06 20:43:15 浏览: 328
易语言十进制浮点数转换到二进制源码.rar
(1) 首先将X和Y的符号位表示出来,因为X和Y都为负数,所以符号位为1。
X的整数部分为6,二进制表示为110,小数部分为0.25,乘以2得0.5,取整数部分0,再乘以2得1,取整数部分1,以此类推,得到二进制表示为0.01。因为小数部分只有两位,需要在后面补够8位,补0得到0.01000000。
因为X的小数部分是0.25,可以通过移位得到8位的尾数,即0.01000000左移6位,得到01000000。因为X是负数,需要对尾数取反再加1得到补码,即10111111。
Y的整数部分为9,二进制表示为1001,小数部分为0.625,乘以2得1.25,取整数部分1,再乘以2得0.5,取整数部分0,以此类推,得到二进制表示为1001.101。因为小数部分有三位,需要舍去最后一位,得到1001.10。同样需要在后面补够8位,补0得到1001.10000000。
因为Y的小数部分是0.625,可以通过移位得到8位的尾数,即0.10000000左移6位,得到10000000。因为Y是负数,需要对尾数取反再加1得到补码,即01111111。
因此,X的二进制浮点数表示为1 1001 1011 1111,Y的二进制浮点数表示为1 0100 1111 1111。
(2) 首先将Y的补码取反再加1,得到-Y的补码为10000001。因为X和-Y的符号位相同,所以结果的符号位为1。
接下来进行尾数的运算。因为Y的阶码大于X的阶码,需要将X的尾数右移3位,得到0.01000000。因为X的尾数是补码表示的,所以需要将其转换成原码表示。因为X是负数,所以需要将尾数取反再加1得到原码,即11000001。
然后将X和-Y的尾数相加,得到11000001 + 10000001 = 101000010。因为结果超出了8位,需要舍去最高位,得到01000010。
接下来进行舍入,因为舍入采用恒舍法,所以结果不需要调整,直接得到舍入后的结果为01000010。
因为结果的符号位为1,所以结果的补码为10111110。将补码转换成原码,得到-2。因此,X-Y的二进制表示为10111110,十进制表示为-2。
阅读全文