[英]putting code declaration into words (reference operator and dereference operator confusion)
嗨,我是C和C ++的初学者,完全被这些代码行弄糊涂了,我不需要知道结果,只想正确地理解第二行,以下是代码
float f = 7.0;
short s = * (short * )&f;
据我所知,您将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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.