我有一个16位定点处理器,我想用它进行定点处理。我正在寻找用于无符号16位整数的正确数据类型..
我的问题是:uint16_t
和uint_fast16_t
之间有什么区别? (这些都包含在stdint.h
中。)uint_fast16_t
更好,因为它更快?
谢谢!
答案 0 :(得分:13)
uint16_t
是无符号的16位整数。 uint_fast16_t
是最快的无符号整数,至少有16位。
答案 1 :(得分:6)
uint16_t
比uint_fast16_t
和uint_least16_t
更具限制性。不仅后两个可能宽于16位,它们也可能有填充位(不考虑奇偶校验位等值的位)。
对于签名类型,这种差异更加明显。这里的确切宽度类型必须使用二进制补码来表示负值。