定点数学和整数数学有什么区别

问题描述

也许这是一个红色的鲱鱼,但我试图了解整数数学和其他定点数系统上的数学之间存在什么区别(如果有)。

在2 ^ 0不是位0的定点数上进行操作是否会产生额外费用?

将所有数字乘以2 ^ 10与执行“正常”数学与在22p10定点数字系统中运算之间有什么区别?

这归结为术语还是我缺少什么?我在微控制器环境中工作。

解决方法

由于指数的原因,整数数学更简单并且所涉及的工作更少。

对定点数执行算术运算时,所得指数取决于操作数和运算。例如,您只能将两个具有相同指数的定点数相加,结果是第三个具有 same 指数的数。同时,当您将两个定点数相乘时,结果的指数就是操作数指数的 sum 。 (除法更加复杂。)

在每种情况下,如果要使操作之间的指数保持一致,则需要在操作之前或之后进行规范化。通过缩放该值以获得所需的指数来完成。

对于二进制数字计算机上的base-2定点算法,通常可以通过移位机器指令来实现缩放。这使它成为微控制器的不错选择,因为移位很便宜。但这不是免费的。

整数算术是定点算术的一种特殊形式,其中操作数的指数为零。这意味着所有运算的结果的指数也为零。这显然简化了运算本身,但是这也意味着这些运算的结果可以在后续运算中(或在同一运算中反复使用)而无需标准化指数,即无需移位!

不利的一面是,现在可以表示的数字范围非常有限,不能包含小数。

,

不清楚当您说“差异”时您要问数学的什么特征。算术运算对于定点和整数算术基本上是相同的...对于浮点更昂贵的系统,使用定点而不是浮点是有好处的。>

真正的区别在于解释的方式是一和零。硬件不在乎您认为这些比特意味着什么。