1.已知x和y,用变形补码计算x + y,并判断结果是否溢出

(1)x = 0.11010,y = 0.101110

1-1.png

(2)x = 0.11101,y = -0.10100

1-2.png

(3)x = -0.10111,y = -0.11000

1-3.png


2.已知x和y,用变形补码计算x-y,并判断结果是否溢出

(1)x = 0.11011,y = 0.11101

2-1.png

(2)x = 0.10111,y = 0.11110

2-2.png

(3)x = -0.11111,y = -0.11001

2-3.png


3.用原码一位乘法计算x×y

(1)x = -0.11111,y = 0.11101

3-1.png

(2)x = -0.11010,y = -0.01011

3-2.png


4.用补码一位乘法计算x×y

(1)x = 0.10110,y = -0.00011

4-1.png

(2)x = -0.011010,y = -0.011101

4-2.png


5.用原码不恢复余数法计算x÷y

(1)x = 0.10101,y = 0.11011

5-1.png

(2)x = -0.10101,y = 0.11011

image.png

注:教材给的题目和参考答案书上给的题目不一样

教材题目:x=-0.10101, y=0.11011

参考答案书题目:x=-0.10101,y=0.11000

下图是参考答案题目的答案:

image.png


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

(1)$x = 2^{011}×0.100100,y = 2^{010}×(-0.011010)$

6-1.png

(2)$x = 2^{-101}×(-0.100010),y = 2^{-100}×(-0.010110)$

6-2.png


7.采用IEEE754单精度浮点数格式计算下列表达式的值

(1)0.625 + (-12.25)

7-1.png

(2)0.625 - ( -12.25)

7-2.png


8.假定在一个8位字长的计算机中运行如下C语言程序段

unsigned int x=134;

unsigned int y=246;

int m=x; int n=y;

unsigned int z1=x-y;

unsigned int z2=x+y;

int k1=m-n;

int k2=m+n;

若编译器编译时将8个8位寄存器R1~R8分别分配给变量x、y、m、n、z1、z2、k1和k2。请回答

下列问题(提示:带符号整数用补码表示)。

(1)执行上述程序段后,寄存器R1、R5和R6中的内容分别是什么?(用十六进制表示)

(2)执行上述程序段后,变量m和k1的值分别是多少?(用十进制表示)

(3)上述程序段涉及带符号整数加减、无符号整数加减运算,这4种运算能否利用同一个加法器及辅助电路实现?简述理由。

(4)计算机内部如何判断带符号整数加减运算的结果是否发生溢出?上述程序段中,哪些带符号整数运算语句的执行结果会发生溢出?

image.png


本站由 Skylwn 使用 Stellar 1.29.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
本站总访问量