2012-04-20 106 views
1

如果我有兩個32位整數,檢測哪些中包含密集/稀疏位分佈的最佳方法是什麼?例如,0xef00和0x1131。想知道是否有任何指標/轉換可以告訴我選擇後者?檢測稀疏位模式

謝謝。

回答

1

這裏是一個可能的度量:

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

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

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