gpt4 book ai didi

java - "x == (x/10)*10;"会被优化掉吗

转载 作者:搜寻专家 更新时间:2023-11-01 03:27:18 25 4
gpt4 key购买 nike

上下文:我们有业务要求以 3 或 4 位数字字符串报告值。如果字符串是 3 位数字,它的值实际上是 *10。

例如123 代表 1230,其中 4567 代表 4567。

当从存储的整数转换回字符串时,上面的代码被视为确定这一点的一种方法。我们的问题是优化器是否会删除 x(整数和 float )的代码。专门研究 Java,但接下来的问题是其他语言的行为如何

另一种明显的方法是使用 Mod (x%10)。

最佳答案

the follow on question is how would other languages behave?

在各种优化级别使用 gcc 在 C 中进行了一些快速测试,并查看了生成的代码。不,它没有得到优化。即使编译器可以在编译时评估 x == (x/10)*10(因为 x 是常量),它仍然会被正确评估。

更新:如果你仔细想想,这是一个显而易见的结果。对于整数 x,编译器不应该能够将 (x/10)*10“优化”为 x,因为它“ll 仅适用于整数集的 1/10。

关于java - "x == (x/10)*10;"会被优化掉吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10325622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com