单选题 一个C语言程序在一台32位机器上运行,程序中定义了3个变量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
【正确答案】 D
【答案解析】[解析] x和z为int型,说明x和z都占32位的存储空间。127换成二进制为0000 0000 0000 0000 0000 0000 0111 1111,对应的十六进制为0000007FH。z进行运算后变成118,换成二进制为0000 0000 0000 0000 0000 0000 0111 0110,对应的十六进制为00000076H。另外,因为y为short型,所以y所占存储空间为16位,且在计算机中使用补码表示(默认的)。-9的二进制表示为1000 0000 0000 1001,因此-9的补码表示为1111 1111 1111 0111(符号位不变,其余位取反加1),对应的十六进制为FFF7H。