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