.NET是否以与myFloat*0.5f相同的方式编译myFloat/2
本文关键字:myFloat 方式 编译 5f 是否 NET | 更新日期: 2023-09-27 18:23:52
我想知道.NET中的编译器是否可以检测到一个简单的除以2并将其形成为乘以0.5。
仔细想想,这可能是我可以改进游戏代码的一小部分。
(事实上,我通常不会担心这一点,但这是我将来写游戏代码时很容易想到的事情。)
实际上myFloat/2得到的处理方式与myFloat/2f相同吗?
通常情况下,除以2将变为位移位。左移乘以二,右移除以二。对于处理器来说,比特移位比乘法或除法容易得多。
是。性能没有差别。事实上,浮点硬件无法将float
除以int
,因此编译器在执行算术之前必须将任何int
更改为float
。
编辑:当然,这是假设x是float
。否则,没关系。