问答题
已知32位寄存器中存放的变量x的机器码为C0000004H,请问:
问答题
当x是无符号整数时,x的真值是多少?x/2的真值是多少?x/2存放在R1中的机器码是什么?2x的真值是多少?2x存放在R1中的机器码是什么?
【正确答案】
【答案解析】x是无符号整数,所有的二进制位均为数值位,C000 0004H的真值为2
31
+2
30
+2
2
。x/2是由逻辑右移一位得到的,即(2
31
+2
30
+2
2
)/2,其真值为2
30
+2
29
+2,存放在R1中的机器码是6000 0002H。2x是由x逻辑左移一位得到的,真值发生溢出,存放在R1中的机器码是8000 0008H。
问答题
当x是带符号整数(补码)时,x的真值是多少?x/2的真值是多少?x/2存放在R1中的机器码是什么?2x的真值是多少?2x存放在R1中的机器码是什么?
【正确答案】
【答案解析】机器码C000 0004H=1100 0000 0000 0000 0000 0000 0000 0100B,表示这是一个负数,数值位取反末位加1,得到的二进制原码为1011 1111 1111 1111 1111 1111 1111 1100,即二进制真值为-0011 1111 1111 1111 1111 1111 1111 1100,对应的十进制真值为-(2
30
-2
2
)。x/2是由x算术右移一位得到的,其真值为-(2
29
-2),存放在R1中的机器码是E000 0002H。2x是由x算术左移一位得到的,其真值为-(2
31
-2
3
),存放在R1中的机器码是8000 0008H。
问答题
当x是float型浮点数时,x的真值是多少?x/2的真值是多少?x/2存放在R1中的机器码是什么?2x的真值是多少?2x存放在R1中的机器码是什么?
【正确答案】
【答案解析】在IEE754单精度浮点数中,最高位为数符位;其后是8位阶码,以2为底,用移码表示,阶码的偏置值为127;其后23位是尾数数值位,隐藏数值的最高位“1”。转换为二进制

,可知,x为负数,阶码为1,尾数为1+2
-21
,故真值为-(1+2
-21
)×2。x/2的真值是-(1+2
-21
),存放在R1中的机器码为

,即BF80 0004H。2x的真值是-(1+2
-21
)×2
2
,存放在R1中的机器码为
