假定在~个8位字长的计算机中运行如下c程序段: unsigned int x=134 ; unsigned int y=2 4 6; int m=x; int n=y; unsigned int z1=x—y;

admin2013-04-26  38

问题 假定在~个8位字长的计算机中运行如下c程序段:
unsigned int  x=134 ;
    unsigned int  y=2 4 6;
    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。请回答下列问题。(提示:带符号整数用补码表示。)
计算机内部如何判断带符号整数加/减运算的结果是否发生溢出?上述程序段中,哪些带符号整数运算语句的执行结果会发生溢出?

选项

答案带符号整数加/减运算的溢出判断规则为:若加法器的两个输入端(加法)的符号相同,且不同于输出端(和)的符号,则结果溢出,或加法器完成加法操作时,若次高位的进位和最高位的进位不同,则结果溢出。最后一条语句执行时会发生溢出。因为10000110+11110110=(1)01111100,括弧中为加法器的进位,根据上述溢出判断规则,可知结果溢出。

解析
转载请注明原文地址:https://kaotiyun.com/show/l5xi777K
0

相关试题推荐
最新回复(0)