我有一个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