第 14 题
在 C 语言中,short 型的长度为 16 位,若编译器将一个 short 型变量 x 分配到一个 32 位寄存器 R 中,且 X=0x8FA0,则 R 的内容为( )。
A. 0x00008FA0 B. 0xFFFF8FA0 C. 0xFFFFFFA0 D. 0x80008FA0
[tag_link]
正确答案:B
在 C 语言中,
short类型默认为有符号整数,长度为 16 位。 当将其值存入 32 位寄存器时,需要进行符号扩展以保持数值不变。 给定x = 0x8FA0,其二进制表示为1000 1111 1010 0000,最高位为 1,表示负数。 符号扩展时,高 16 位需用符号位(1)填充,因此扩展后的 32 位值为0xFFFF8FA0。