你好我是c和c ++的初学者并且完全被这些代码行弄糊涂了,我不需要知道结果,只是想正确理解第二行,以下是代码< / p>
float f = 7.0;
short s = * (short * )&f;
答案 0 :(得分:0)
据我所知,你将float的前16位重新解释为short。
会发生什么:首先获取浮点数的地址,然后将指针转换为short*
指针,这样就可以一次取16
位而不是32
}。最后,查询指针的值。
由于7.0
表示为(http://www.h-schmidt.net/FloatConverter/IEEE754.html):
00000000 00000000 01110000 01000000
结果为0
,如果您选择第二个短片,则为16 496
例如,如果您使用:
float f = 7.0068;
然后结果将是:14 261