【发布时间】:2012-03-27 04:50:34
【问题描述】:
谢天谢地,complex 类型修饰符被引入 C99 标准。我不明白的是为什么决定省略对定点算术的支持(具体来说,支持像 1.15 {signed} 或 0.32 {unsigned} 这样的小数类型),而这些类型对于 DSP 编程如此重要?
GCC 是否通过扩展支持这些?
【问题讨论】:
-
定点类型和整数一样吧?
-
@CarlNorum:不是真的;它们的比例有点像整数,但是当你将两个数字相乘时,你最终也会改变结果。
-
@CarlNorum - 整数是定点数的子集,其中二进制点位于 lsb 的右侧。通常,您可以将点放在寄存器中的任何位置,但您必须保持算术运算符的一致性。
-
@CarlNorum - 例如,如果您有格式为 1.15 的数字(二进制点左侧 1 位,右侧 15 位),则使用整数乘法将得到 2.30 结果。然后,您必须将其左移 1 个位置并截断低 16 位以返回 1.15 格式。
-
我们大多数人会称之为将结果右移 15 位.. :-)
标签: c gcc c99 fixed-point