己知32位寄存器中存放的变量x的机器码为C0000004H,请问:
问答题
当x是无符号整数时,x的真值是多少?x/2的真值是多少?x/2存放在R1中的机器码是什么?2x的真值是多少?2x存放在Rl中的机器码是什么?
【正确答案】正确答案:x是无符号整数,所有的二进制位均为数值位,C000 0004H的真值为2
31
+2
30
+2
2
。x/2是由逻辑右移一位得到的,即(2
31
+2
30
+2
2
)/2,其真值为2
30
+2
29
+2,存放在R1中的机器码是60000002H。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”。转换为二进制
1
100 0000 0
000 0000 0000 0000 0000 0100
,可知,x为负数,阶码为1,尾数为1+2
—21
,故真值为一(1+2
—21
)×2。x/2的真值是—(1+2
—21
),存放在R1中的机器码为1
011 1111 1
000 0000 0000 0000 0000 0100,即BF80 0004H。2x的真值是—(1+2
—21
)x22,存放在R1中的机器码为1
100 0000 1
000 0000 0000 0000 0000 0100,即C080 0004H。
【答案解析】