设机器字长为5位(含1位符号位,n=4),x=-0.1101,y=0.1011,采用原码一位乘求x.y时,第一次右移时,高位积移动到低位积的数是▁▁▁,第二次右移时,高位积移动到低位积的数是▁▁▁,第三次右移时,高位积移动到低位积的数是▁▁▁,第四次右移时,高位积移动到低位积的数是▁▁▁,最后得到的乘积是▁▁▁。
时间: 2024-03-31 21:33:25 浏览: 60
首先将 x 和 y 转换成原码表示:
x = 1 10011
y = 0 10110
接下来进行一位乘法运算:
第一次右移,低位补 0:
1 10011 0
0 10110 0
高位积移动到低位积的数是 0。
第二次右移,低位补 0:
11 00110 0
00 00000 0
高位积移动到低位积的数是 1。
第三次右移,低位补 0:
110 01100 0
000 00000 0
高位积移动到低位积的数是 1。
第四次右移,低位补 0:
1100 11000 0
0000 00000 0
高位积移动到低位积的数是 1。
最后得到的乘积是 1100 11000,转换成十进制为 -0.8125。
因为这是一位乘,所以需要将结果乘以 2^(-1),得到最终结果为 -0.40625。
相关问题
设机器字长N=8,用变形补码计算X+Y和X-Y,并指出结果是否溢出?(1)X=0.111111 Y=-0.101101;(2)X=1010000 Y=1001010;(3)X=-0.110011 Y=0.101101;(4)X=-101 Y=-1100111
对于这个问题,我可以回答。
(1) X=0.111111 Y=-0.101101,X-Y=1.101100,结果没有溢出。
(2) X=1010000 Y=1001010,X-Y=10010,结果没有溢出。
(3) X=-0.110011 Y=0.101101,X-Y=-1.011000,结果没有溢出。
(4) X=-101 Y=-1100111,X-Y=1010010,结果溢出了。
某机器字长8位,1位符号位。写出 x= -0.100011 的原码,反码,补码表示以及算术右移1位的结果
这道题需要注意的是符号位,因为是1位符号位,所以最高位是符号位。
- 原码:x= -0.100011,符号位为1,数值位为0.100011。将小数部分乘以2,得到1.00011,再将整数部分转为二进制,得到1,因此原码为:11000011。
- 反码:符号位不变,数值位按位取反,得到:11111100。
- 补码:符号位不变,数值位按位取反再加1,得到:11111101。
- 算术右移1位:将补码右移一位,最高位用符号位填充。由于是负数,所以符号位为1,右移后得到:11111110。
因此,x=-0.100011的原码为11000011,反码为11111100,补码为11111101,算术右移1位的结果为11111110。