回答

0

如果您正在滾動自己的奇偶校驗方案,則可能需要計算位數。 (當然,我寧願使用別人的。)如果你正在模擬一臺舊電腦,並想跟蹤它在原版上運行的速度,一些有乘法指令,其速度隨數字而變化1比特。

我想不出任何時候我想在過去的十年左右這麼做,所以我懷疑這更多的是編程練習而不是實際需要。

+0

可以計算奇偶校驗直接與比人口數較少的操作(除非你的CPU有' POPCNT「或類似)。 – 2010-04-13 16:07:44

0

以一種諷刺的方式,它對於面試問題很有用,因爲它需要一些詳細的低層思維,而且似乎沒有將其作爲comp sci課程中的標準算法教授。

0

有些人喜歡用位圖來表示存在/不存在「東西」。

有一個簡單的方法來隔離單詞中最不重要的1位,將其轉換爲位於其下的位中的一個字段,然後您可以通過計算1位來查找位編號。

countbits((x XOR (x-1)))-1; 

看着它的工作。

Let x =  00101100 
Then x-1 = 00101011 
x XOR x-1 = 00000111 

其中有3位設置,所以第2位是在原字的最低顯著1位