单选题 在C语言中,short型的长度为16位,若编译器将一个short型变量x分配到一个32位寄存器R中,且X=0x8FA0,则R的内容为______。
【正确答案】 B
【答案解析】[解析] 本题考查补码数的符号扩展。将16位有符号数扩展成32位有符号数,符号位不变,附加位是符号位的扩展。这个数是一个负数,而选项A表示正数,选项C数值部分发生变化,选项D用0来填充附加位,所以只有选项B正确。
注意:符号扩展的方法根据机器数的不同而不同,见下表所示。
正数 原符号位移动到新符号位上,新表示形式的所有附加位都用0进行填充。
负数 原码 原符号位移动到新符号位上,新表示形式的所有附加位都用0进行填充。
反码、补码 原符号位移动到新符号位上,新表示形式的所有附加位都用1进行填充。