2012-04-20 82 views
1

如果我有两个32位整数,检测哪些中包含密集/稀疏位分布的最佳方法是什么?例如,0xef00和0x1131。想知道是否有任何指标/转换可以告诉我选择后者?检测稀疏位模式

谢谢。

回答

1

这里是一个可能的度量:

sparseness = popcnt((x<<2) | (x<<1) | x | (x>>1) | (x>>2))/popcnt(x) 

稀疏= 1 .. 3密位分配中,稀疏= 3..5用于稀疏比特分布。

您可以使用不同数量的班次和/或使用位循环代替班次。