我正在寻找在两个位置之间的位串中查找弹出计数的解决方案,例如:
popcnt( 10(0101), 0, 3) = 1
popcnt( 100101(), 0, 0) = 0
popcnt( 10010(1), 0, 1) = 0
** 我假设开放范围并假设从右到左顺序
使用标准位运算符,可能还有 popcnt 或等效的。
如果有区别,我希望找到两个字符串之间的差异。假设我有字符串b
并且我在两个位置交换位,例如0101110 -> 1101100 => 3
- 我需要改变的位之间的popcnt - 在两者之间的位的情况下,所以 popcnt 是 30101110 -> 1101100
10110
您是否看到了一些巧妙的方式来使用 bithacks?