已知C程序中,某类型为int的变量x的值为一1088。程序执行时,x先被存放在16位寄存器R1中,然后被进行算术右移4位的操作。则此时R1中的内容(以十六进制表示)是( )。

admin2019-12-10  51

问题 已知C程序中,某类型为int的变量x的值为一1088。程序执行时,x先被存放在16位寄存器R1中,然后被进行算术右移4位的操作。则此时R1中的内容(以十六进制表示)是(    )。

选项 A、FBCOH
B、FFBCH
C、0FBCH
D、87BCH

答案B

解析 考查不同进制数之间的转换与算术移位运算。对于本类题型,应先将一1088转换为16位的补码表示,执行算术右移后,再转换为十六进制数。R1的内容首先为[—1088]=1111 10111100 0000B=FBCOH。算术右移4位的结果为1111 1111 1011 1100B=FFBCH,则此时R1中的内容为FFBCH。
    注意:算术移位时保持最高的符号位不变,对于正数(符号位为0),原码、补码、反码的算术左移/右移都是添0:对于负数(符号位为1),添补规则见下表。
转载请注明原文地址:https://jikaoti.com/ti/3qDjFFFM
0

最新回复(0)