己知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。
【答案解析】