问答题

假定在一个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,则回答下列问题(提示:带符号整数用补码表示): 计算机内部如何判断带符号整数加/减运算的结果是否发生溢出上述程序段中,哪些带符号整数运算语句的执行结果会发生溢出

【参考答案】

至于内部如何判断溢出,可参考前面的总结。带符号整数只有k2会发生溢出。分析:8位带符号整数的补码取值范围为-128~+1......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)