gpt4 book ai didi

c# - C#如何评估数组循环 boolean 等式?

转载 作者:行者123 更新时间:2023-11-30 23:03:32 28 4
gpt4 key购买 nike

我试图找出为什么在下面的方法中,数组“8”中的最后一个值会满足“(8 & 7) == 0”的 where 子句。

public class Test {
public static void Main() {
int[] Arr = {-3, -1, 0, 1, 3, 8};
var s = from x in Arr where (x & (x-1)) == 0 select x+1;
foreach (int x in s)
Console.Write(x + " ");
}
}

它包含在招聘技能测试中,但我终究无法弄清楚为什么选择该值。无论哪种方式,我都不会在我的测试中使用它,但我很好奇,因为我以前从未遇到过它。

最佳答案

所以单个 & 是位运算符。它正在查看这些数字的二进制表示。

7 = 0111 和 8 = 1000

当你将它们合并时,你会得到 0。

这就是您的方法打印出 9 的原因。

关于c# - C#如何评估数组循环 boolean 等式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49886751/

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