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

admin2018-07-17  26

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

选项

答案float型变量在计算机中都被表示成IEEE754单精度格式。X=一68=一(1000100)2=一1.0001×26,符号位为1,阶码为127+6=128+5:(1000 0101)2,尾数为1.0001,所以小数部分为:000 1000 0000 0000 0000 0000,合起来整个浮点数表示为:1 1000 0101 000 1000 0000 0000 0000 0000,写成十六进制为:C2880000H。 Y=一8.25=一(1000.01)2=一1.00001×23,符号位为1,阶码为127+3=128+2=(1000 0010)2,尾数为1.00001,所以小数部分为:000 0100 0000 0000 0000 0000,合起来整个浮点数表示为:1 1000 0010 000 0100 0000 0000 0000 0000写成十六进制为C1040000H。 因此,寄存器A和B的内容分别为C2880000H、C1040000H。

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

最新回复(0)