问题 问答题

一个C语言程序在一台32位机器上运行。程序定义了三个变量x、y和z,其中x和z为int型,y为short型。当x=127,y=-9时,执行赋值语句z=x+y后,x、y和z的值分别是( )。

  • A.x=0000007FH,y=FFF9H,z=00000076H
  • B.x=0000007FH,y=FFF9H,z=FFFF0076H
  • C.x=0000007FH,y=FFF7H,z=FFFF0076H
  • D.x=0000007FH,y=FFF7H,z=00000076H

答案

参考答案:符号数在计算机中通常是用补码表示的,所以,x为正数,表示为0000007FH,y为负数,表示为FFF7H。求和时,由于位数不一致,所以y需要进行扩展,对于补码而言,新增加位的值与符号位相同,所以扩展后为FFFF FFF7H,x、y两者相加,所以得到00000076H。

单项选择题 A2型题
配伍题 B型题