检测稀疏位模式

时间:2012-04-20 13:13:43

标签: bit sparse-matrix

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

感谢。

1 个答案:

答案 0 :(得分:1)

以下是一个可能的指标:

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

sparseness = 1 .. 3用于密集位分配,稀疏度= 3 .. 5用于稀疏位分布。

您可以使用不同数量的班次和/或使用比特轮换而不是轮班。