我有一個16位定點處理器,我想用它做定點處理。我正在尋找正確的數據類型使用無符號16位整數..定點處理:uint16_t和uint_fast16_t有什麼區別?
我的問題是:有什麼區別uint16_t
和uint_fast16_t
? (這些都包含在stdint.h
中。)uint_fast16_t
更好,因爲它更快?
謝謝!
我有一個16位定點處理器,我想用它做定點處理。我正在尋找正確的數據類型使用無符號16位整數..定點處理:uint16_t和uint_fast16_t有什麼區別?
我的問題是:有什麼區別uint16_t
和uint_fast16_t
? (這些都包含在stdint.h
中。)uint_fast16_t
更好,因爲它更快?
謝謝!
uint16_t
是一個無符號的16位整數。 uint_fast16_t
是具有至少16位的最快可用無符號整數。
如果您可以定義「最快」,回答會更有幫助。 – 2011-02-10 19:47:17
uint16_t
比uint_fast16_t
和uint_least16_t
更具限制性。不僅後面兩個可能比16位寬,它們也可能有填充位(不考慮奇偶校驗位等值的位)。
這種差異對簽名類型更爲明顯。在這裏,確切的寬度類型必須使用二進制補碼來表示負值。
http://en.wikipedia.org/wiki/Stdint.h#Integer_types – kennytm 2011-02-10 19:42:45