# 2017q3 Homework1 回顧
- [ ] clz
* [HTYISABUG](https://hackmd.io/s/rJq6OkIhW)
* clz 應用場景
* 硬體除法
* 若除數被除數都有 leading zero, 那麼可以將他們同左移一部份, 省下這些多餘的迴圈,至於左移多少, 就是經由 clz 來計算決定了
* 轉換整數成浮點數
* 浮點數的 exponent 部份能用 clz 快速算出快速計算倒數 (Newton–Raphson division)
* 尋找迴圈中的循環
* 給定 function 跟起始條件, 這種演算法能找到循環的開始與結束點,其中的 Gosper’s algorithm 有應用到 clz
* 資料壓縮
* 將 integer 壓縮為 leading zero 的數量以及剩下的部份
:::info
一併參照 [Find first set](https://en.wikipedia.org/wiki/Find_first_set)
:::
* [st9007a](https://hackmd.io/s/rywfL4tj-)
* Division Algorithm
* Integer Square Root
* [zhanyangch](https://hackmd.io/s/SkFjdEw2-)
* H.264 使用的編碼 Exponential-Golomb coding
* [Yuessiah](https://hackmd.io/s/BJPsDklhb)
* 比較個別實作的效能差異
* [vasv75182366](https://hackmd.io/s/SynznRDi-)
* De Bruijn sequence
:::info
對照觀看影片 [ADS1: De Bruijn graphs and Eulerian walks](https://www.youtube.com/watch?v=TNYZZKrjCSk)
應用:
1. [How to apply de Bruijn graphs to genome assembly](https://www.nature.com/nbt/journal/v29/n11/full/nbt.2023.html)
2. [De Bruijn Graph assembly](https://www.cs.jhu.edu/~langmea/resources/lecture_notes/assembly_dbg.pdf)
:::
* [ChiuYiTang](https://hackmd.io/s/Skx1vOU2b)
* 計算 log2
* Gray-code solution
:::info
參見 [《通信原理》第 33 講](http://d0.ananas.chaoxing.com/download/553eed95e4b0199d27056801?fn=&mt=)
:::