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