缩短了二进制值的搜索过程

本文关键字:搜索 过程 二进制 | 更新日期: 2023-09-27 18:19:28

我正试图弄清楚是否有一种更快的方法可以在循环中为这种情况找到匹配的数字:

        List<int> l = new List<int>();
        for (int i = 0; i < 32; i++)
        {
            l.Add(i);
        }
        IEnumerable<IEnumerable<int>> k = GetPermutationsWithRept(l, 4).ToArray();
        foreach (IEnumerable<int> item in k)
        {
            int[] comb = item.ToArray();
            if (((comb[0] & 3) << 6 & 192 | (comb[1] & 3) << 4 & 48 | comb[2] & 12 & 12 | (comb[3] & 24) >> 3 & 3) == 178)
            {
                Console.WriteLine(comb[0].ToString());
                Console.WriteLine(comb[1].ToString());
                Console.WriteLine(comb[2].ToString());
                Console.WriteLine(comb[3].ToString());
            }
        }

如有任何帮助,我们将不胜感激。

谢谢。

缩短了二进制值的搜索过程

我最终用C++重写了这段代码,它只需20秒就完成了。c端已经发生了大约12个小时的事情。我真的很惊讶它在C++中完成得如此之快。