ch2: fix code path

This commit is contained in:
chai2010
2016-01-20 23:16:19 +08:00
parent 442dd58ee4
commit 7fe7a309be
7 changed files with 41 additions and 51 deletions

View File

@@ -24,8 +24,8 @@ func init() { /* ... */ }
下面的代碼定義了一個PopCount函數用於返迴一個數字中含二進製1bit的個數。它使用init初始化函數來生成輔助表格pcpc表格用於處理每個8bit寬度的數字含二進製的1bit的bit個數這樣的話在處理64bit寬度的數字時就沒有必要循環64次隻需要8次査表就可以了。這併不是最快的統計1bit數目的算法但是它可以方便演示init函數的用法併且演示了如果預生成輔助表格這是編程中常用的技術
<u><i>gopl.io/ch2/popcount</i></u>
```Go
gopl.io/ch2/popcount
package popcount
// pc[i] is the population count of i.
@@ -74,4 +74,3 @@ for i, _ := range pc {
**練習 2.4** 用移位算法重寫PopCount函數每次測試最右邊的1bit然後統計總數。比較和査表算法的性能差異。
**練習 2.5** 表達式`x&(x-1)`用於將x的最低的一個非零的bit位清零。使用這個算法重寫PopCount函數然後比較性能。