单选题
已知C程序中,某类型为int的变量x的值为-1088。程序执行时,x先被存放在16位寄存器R1中,然后被进行算术右移4位的操作。则此时R1中的内容(以十六进制表示)的是______。
A.FBC0H
B.FFBCH
C.0FBCH
D.87BCH
A
B
C
D
【正确答案】
B
【答案解析】
[解析] 对于本类题型,应先将-1088转换为16位的补码表示,执行算术右移之后,再转换为十六进制数。算术右移的规则为:保持最高的符号位不变,符号位为0时,补码右移空位补0;符号位为1时,补码右移空位补1(逻辑左/右移都是补0)。
R1的内容首先为[-1088]
补
=1111 1011 1100 0000B=FBCOH,算术右移4位的结果为1111 1111 1011 1100B=FFBCH,即此时R1中的内容为FFBCH,故选B。
提交答案
关闭