已知两个实数x=-68,y=-8.25,它们在C语言中定义为float型变量,分别存放在寄存器A和B中。另外,还有两个寄存器C和D。A、B、C、D都是32位的寄存器。    请回答下列问题(要求用十六进制表示二进制序列):    (1)寄存器A

admin2014-12-08  75

问题 已知两个实数x=-68,y=-8.25,它们在C语言中定义为float型变量,分别存放在寄存器A和B中。另外,还有两个寄存器C和D。A、B、C、D都是32位的寄存器。
      请回答下列问题(要求用十六进制表示二进制序列):
      (1)寄存器A和B的内容分别是什么?
      (2)x和y相加后的结果存放在C寄存器中,寄存器C中的内容是什么?
      (3)x和y相减后的结果存放在D寄存器中,寄存器D中的内容是什么?

选项

答案(1)x=-1.0001×26,符号位=1,阶码为127+6=133=(10000101)2,尾数为1.0001,所以寄存器A的内容为110000101 00010000000000000000000,写出十六进制为C2880000H。y=-1.00001×23,符号位=1,阶码为127+3=130=(10000010)2,尾数为1.00001,所以寄存器B的内容为1 10000010 00001000000000000000000,写出十六进制为C1040000H。 (2)两浮点数相加,首先对阶,小阶向大阶看齐,然后尾数相加,结果规格化。X和Y相加后的结果为-1.0011001×26。其中:符号位=1,阶码为127+6=133=(10000101)2,尾数为1.00110001,所以存放结果的寄存器C的内容为1 10000101 00110001000000000000000,写出十六进制为C2988000H。 (3)两浮点数相减的步骤与相加相同,只是改为尾数相减。x和y相减后的结果为-0.11101111×26=1.1101111×25,其中:符号位=1,阶码为127+5=132=(10000100)2尾数为1.1101111,所以存放结果的寄存器D的内容为1 100001001101111000000000000000,写出十六进制为C26F0000H。

解析
转载请注明原文地址:https://jikaoti.com/ti/U7ajFFFM
0

最新回复(0)