问题 问答题

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

x和y相减后的结果存放在D寄存器中,寄存器D中的内容是什么

答案

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

判断题
选择题