1. 程式人生 > >空間換時間,查表法的經典例子

空間換時間,查表法的經典例子

## 前言 上一篇分享了:[C語言精華知識:表驅動法程式設計實踐](https://t.1yb.co/rcS) 這一篇再分享一個查表法經典的例子。 我們怎麼衡量一個函式/程式碼塊/演算法的優劣呢?這需要從多個角度看待。本篇筆記我們先不考慮程式碼可讀性、規範性、可移植性那些角度。 在我們嵌入式中,我們需要根據實際資源的情況來設計我們的程式碼。比如當我們能用的儲存器空間極其有限的情況,我之前就有遇到這樣子的情況,我能用的flash空間只有4KB,但是要實現的功能很多,稍微不注意就會超了,這種情況下我們就得多考慮程式佔用方面的問題。如果我們的儲存器空間很足,有時候可以犧牲一些儲存器空間來換取我們程式的執行速度。查表法就是`以空間換取時間`的典型例子。下面看一個經典的例子: ## 基礎例子 編寫程式統計一個4bit資料(0x0~0x0F)中1的個數。這裡提供兩種方法: ### 1、方法一:常規法 常規法就是依次判斷這個4bit的資料的每一位是否為1,並用一個計數變數把1的個數記錄下來: ```c #