![]() |
1
7
|
![]() |
2
0
您希望代码的可读性如何?
这是“黑客的喜悦”中的比特计数算法,这是一个有用的比特撞击算法的古老宝库。
执行成对的比特相加。请注意
所以
这意味着,如果每对中都设置了2,则减去结果将减去1,如果未设置,则不减去任何结果。在每一对比特中,您现在都有该对的计数,存储在该对曾经所在的位置。 然后,其他行进行成对求和,将每对“2位”的计数相加,将每一对“4位”的数相加,将每个对“8位”的总数相加,以此类推。如果你需要做两个64位字,你可以多加一行。 最后,要查看是否设置了一个位,请检查计数是否等于1。
请注意,虽然这很有趣,但最好使用
黑客的喜悦 https://learning.oreilly.com/library/view/hackers-delight-second/9780133084993/ |
![]() |
Sweepy Dodo · JSON lite的格式化 6 月前 |
![]() |
giantjenga · 优化整数向量到二进制向量的转换 7 月前 |
![]() |
Zegarek · Postgresql递归查询未提供预期结果 8 月前 |
![]() |
Joe · 为什么这两个查询之间的性能存在如此大的差异? 11 月前 |
![]() |
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 11 月前 |
![]() |
Mohan · 是否有一种更快的方法来编写代码,从1:N中提取许多随机样本? 12 月前 |
![]() |
user2980746 · 在C#字典中键入xyz对的最有效方法是什么? 12 月前 |