嗨,我是 c 和 c++ 的初学者,对这些代码行完全困惑,我不需要知道结果,只是想正确理解第二行,以下是代码
float f = 7.0;
short s = * (short * )&f;
最佳答案
据我所知,您将 float 的前 16 位重新解释为短整型。
会发生什么:首先获得 float 的地址,然后将该指针转换为 short*
指针,这样做后,您将在 a 处获取 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
关于c++ - 将代码声明转化为文字(引用运算符和取消引用运算符混淆),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25417050/