单选题 考虑以下C语言代码:
short si=-8196;
int i=si;
执行上述程序段后,i的机器数表示为______。
  • A.0000 9FFCH
  • B.0000 DFFCH
  • C.FFFF 9FFCH
  • D.FFFF DFFCH
【正确答案】 D
【答案解析】[解析] 解法一: 求出si的16位补码,扩展成32位。 si的16位补码为1101 1111 1111 1100,扩展为32位为1111 1111 1111 1111 1101 1111 1111 1100,即为FFFF DFFCH。 解法二: 可知i=si=-8196,直接求-8196的32位补码。 -8196的32位补码为1111 1111 1111 1111 1101 1111 1111 1100,即为FFFF DFFCH。 很明显解法二更直接,将问题简化了。