gpt4 book ai didi

c++ - 用于在值为 0 时更新值的按位技巧

转载 作者:行者123 更新时间:2023-11-30 01:39:06 24 4
gpt4 key购买 nike

浏览一些遗留的 C++ 代码。在很多地方我都看到了这种模式:

if (theFloatValue == 0) theFloatValue = anotherFloatArray[4];

是否有一些操作 hack 可以帮助我为此编写无分支代码?

代码本身没有问题,可以正常工作。


不尝试过早优化。看到这种代码模式无处不在后,只是出于好奇才问。

最佳答案

您可以使用一些数学来完成:

x 是您要操作的值,y 是您希望 x 为 0 时的值。

案例#1

x = 0
=> !x = 1
=> !x * y = y
=> (!x * y) + x = (!x * y) = y

案例#2

x != 0
=> !x = 0
=> !x * y = 0
=> (!x * y) + x = 0 + x = x

结果

x = (!x * y) + x 是你需要的

关于c++ - 用于在值为 0 时更新值的按位技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46496284/

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