# 2016q3 Homework1(clz) contributed by <`heathcliffYang`> # 目標 - 閱讀[重新理解數值](https://hackmd.io/s/SkKZBXZT) - 設計實驗,測各個clz程式處理32-bit數值的效能差異 # 觀察與設計實驗 ## 1. clz.c & clz.h將各個clz函式蒐集 - iteration (在重新理解數值) - binarySearch (在重新理解數值) - byteShift (在重新理解數值) - recursive - harley ## 2. benchmark_time.c 測試效能 1. 設計input值:先取5個代表性的數值來測試,視情況再多加入點 2. 測時間: 考慮到一個程式的效能,時間快是最直觀的。 ```c ``` ## 3. Makefile ## 4. 理解與修改函式 1. iteration 從一半(也就是16-bit)嘗試shift right,檢查shift之後的值是否為零,若為零,則shift right的bit數再減少一半,直至不為零;不為零則繼續利用shift right後的值 2. binarySearch 3. byteShift 4. recursive 5. harley # 效能優化策略 # 背景知識 ## Fast