gpt4 book ai didi

c# - 定义循环上限的异或魔术有什么意义?

转载 作者:行者123 更新时间:2023-11-30 21:55:07 24 4
gpt4 key购买 nike

我在没有任何评论的情况下偶然发现了这段代码:

int delay = 5;
int maxDelay = 5 * (3 ^ 5); // << what's this xor magic?
while( Something && delay < maxDelay ) {
Thread.Sleep( delay );
delay *= 3;
}

3 ^ 5 有什么意义?那是“3 xor 5”,即 6,没有什么有趣的东西,比如 Int32.MaxValue 的三分之一。为什么不直接写 6 呢?我想这与结果随后乘以 5 并且值在每次迭代中乘以 3 这一事实有关。

这是一些众所周知的模式吗?它有什么作用?

最佳答案

他的意思是 Math.Pow(3, 5)^ 不是幂运算符(C# 中不存在)。这是一个错误。

这是有道理的,因为在循环中他以指数方式增加delay。所以指数上限是有道理的。

我认为这种风格很糟糕,即使它有效。循环运行的频率并不明显。他应该使用普通的 for 循环并在循环内重新计算 delay,而不是沿着循环递增地运行它。

关于c# - 定义循环上限的异或魔术有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32561080/

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