问答题 已知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中的机器码为