定点处理:uint16_t和uint_fast16_t有什么区别?

时间:2011-02-10 19:37:58

标签: c fixed-point

我有一个16位定点处理器,我想用它进行定点处理。我正在寻找用于无符号16位整数的正确数据类型..

我的问题是:uint16_tuint_fast16_t之间有什么区别? (这些都包含在stdint.h中。)uint_fast16_t更好,因为它更快?

谢谢!

2 个答案:

答案 0 :(得分:13)

uint16_t是无符号的16位整数。 uint_fast16_t是最快的无符号整数,至少有16位。

答案 1 :(得分:6)

uint16_tuint_fast16_tuint_least16_t更具限制性。不仅后两个可能宽于16位,它们也可能有填充位(不考虑奇偶校验位等值的位)。

对于签名类型,这种差异更加明显。这里的确切宽度类型必须使用二进制补码来表示负值。