gpt4 book ai didi

javascript - 位操作 : detect if at least 5 bits in byte are set?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:52:51 25 4
gpt4 key购买 nike

检查二进制数是否设置了最小位数的最佳方法是什么?

例如,我需要查看此序列中是否至少有 5 位设置为 1:

101100010

我一直在研究使用位掩码之类的方法,但我对如何做到这一点感到困惑而不是自信。

感谢任何帮助。

最佳答案

来自 http://blog.faultylabs.com/2011.php?p=jsbitfun

/*
popCnt(n)
Returns the bit population count of n (that is: how many bits in n are set to 1)
n must be an unsigned integer in the range [0..(2^32)-1]
This lookup-table-free method is from Kernighan & Ritchie's "The C Programming Language"
Exercise 2.9 (on page 62 of my copy). Not sure whether they (K&R) are the inventors.
*/
function popCnt(n) {
n >>>= 0 /* force uint32 */
for(var popcnt = 0; n; n &= n - 1) {
popcnt++
}
return popcnt
}

参见 http://en.wikipedia.org/wiki/Hamming_weight有关其他算法的详细信息。

关于javascript - 位操作 : detect if at least 5 bits in byte are set?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8579759/

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