.NET是否以与myFloat*0.5f相同的方式编译myFloat/2

本文关键字:myFloat 方式 编译 5f 是否 NET | 更新日期: 2023-09-27 18:23:52

我想知道.NET中的编译器是否可以检测到一个简单的除以2并将其形成为乘以0.5。

仔细想想,这可能是我可以改进游戏代码的一小部分。

(事实上,我通常不会担心这一点,但这是我将来写游戏代码时很容易想到的事情。)

实际上myFloat/2得到的处理方式与myFloat/2f相同吗?

.NET是否以与myFloat*0.5f相同的方式编译myFloat/2

通常情况下,除以2将变为位移位。左移乘以二,右移除以二。对于处理器来说,比特移位比乘法或除法容易得多。

是。性能没有差别。事实上,浮点硬件无法将float除以int,因此编译器在执行算术之前必须将任何int更改为float

编辑:当然,这是假设x是float。否则,没关系。