gpt4 book ai didi

c++ - 如果我想将一个无符号整数四舍五入为最接近的更小或相等的偶数,我可以除以 2 然后乘以 2 吗?

转载 作者:IT老高 更新时间:2023-10-28 12:10:25 26 4
gpt4 key购买 nike

例如:

f(8)=8
f(9)=8

我可以做 x = x/2*2; 吗?编译器会优化掉这样的表达式吗?

最佳答案

只要不给程序带来任何副作用,编译器就可以进行任何它喜欢的优化。在您的情况下,它不能取消 '2',因为表达式对于奇数会有不同的值。

x / 2 * 2严格评估为(x / 2) * 2 , 和 x / 2如果 x 则以整数算术执行是整数类型。

事实上,这是一种惯用的舍入技术。

关于c++ - 如果我想将一个无符号整数四舍五入为最接近的更小或相等的偶数,我可以除以 2 然后乘以 2 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46805181/

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