gpt4 book ai didi

c - 如何避免为此操作在 C 中分支

转载 作者:太空狗 更新时间:2023-10-29 17:04:44 26 4
gpt4 key购买 nike

有没有办法删除以下 if 语句来检查值是否小于 0?

int a = 100;
int b = 200;
int c = a - b;

if (c < 0)
{
c += 3600;
}

c 的值应介于 0 和 3600 之间。两者都是 ab已签署。 a 的值也应该介于 0 和 3600 之间。(是的,它是一个以 0.1 度为单位的计数值)。该值被中断重置为 3600,但如果中断来得太晚,它就会下溢,这不是问题,但软件应该仍然能够处理它。它的作用。

我们这样做 if (c < 0)在我们计算位置的很多地方检查。 (计算新位置等)

我习惯于使用 python 模运算符来使用除数的符号,而我们的编译器 (C89) 使用的是被除数符号。

有什么方法可以以不同的方式进行这种计算吗?示例结果:

 a  -  b  = c
100 - 200 = 3500
200 - 100 = 100

最佳答案

好问题!这个怎么样?

c += 3600 * (c < 0);

这是我们保留分支预测槽的一种方式。

关于c - 如何避免为此操作在 C 中分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17748972/

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