草庐IT

c++ - 在二进制字中查找 1 的最有效方法?

我不确定这样的东西会被称为什么(因此这个笨拙的标题)但我需要这样的东西来做我正在做的事情。我无法用语言很好地描述它,但我希望这张图能为我解释:当要忽略任意“索引”(例如5)之后的所有内容时,获取本例中“on-bits”(“3”)数量的最快方法是什么? 最佳答案 除了已经说过的,我想提请你注意,许多编译器提供了一个内置的popcnt,它可能比手动执行更快(然后再说一遍,也许不是,一定要测试它).如果您的目标体系结构中可用,它们的优势可能是编译为单个popcnt操作码(但我听说它们在回退到库函数时会做一些愚蠢的缓慢事情),而如果编译器检

c++ - 查看固定长度数组之间有多少字节相等的最快方法

我有2个包含16个元素(字符)的数组,我需要“比较”它们并查看两者之间有多少元素相等。这个例程将被使用数百万次(通常运行大约60或7000万次),所以我需要它尽可能快。我正在研究C++(C++Builder2007,备案)现在,我有一个简单的:matches+=array1[0]==array2[0];重复16次(因为性能分析似乎比使用for循环快30%)有没有其他方法可以更快地工作?关于环境和数据本身的一些数据:我使用的是C++Builder,它没有任何速度优化需要考虑。我最终会尝试使用另一个编译器,但现在我只能使用这个。大多数时候数据会有所不同。100%相等的数据通常非常非常少(可