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

admin2018-07-17  62

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

选项

答案两个浮点数相减的步骤同加法,对阶的结果也一样,只是尾数相减。 尾数相减:X的尾数为一1.000 1000 0000 0000 0000 0000,y的尾数为一0.001 0000 1000 0000 0000 0000。 用原码减法运算实现,两数符号相同,做减法:符号位:取大数的符号,负数,所以为1。数值部分:大数加小数负数的补码: [*] x减y的结果为一0.11101111×26=一1.1101111×25,所以: 符号位为1,尾数为110 1111 0000 0000 0000 0000,阶码为127+5=128+4,即1000 0100。 合起来为:1 1000 0100 110 1111 0000 0000 0000 0000,转换为十六进制形式为:C26F0000H。所以寄存器D中的内容是C26F0000H。

解析
转载请注明原文地址:https://kaotiyun.com/show/xyRi777K
0

最新回复(0)