主要内容

算术运算

请注意

这些部分将帮助您了解哪些数据类型和比例的选择导致溢出或精度的损失。

模运算

二进制数学是基于模运算。模运算只使用有限的一组数字,包装任何计算的结果超出给定的集合回到集合。

例如,日常时钟使用模12算术。数字在这个系统只能1到12。因此,在“时钟”系统,9 + 9 = 6。这可以更容易地可视化为圆数量:

同样,二进制数学只能使用0和1的数字,和任何算术结果超出这个范围被包装“绕着圈”0或1。

二进制补码

二进制补码是一种常见的代表签署了定点数字。在二进制补码,正数总是从0开始,负数总是从1开始。如果领导的二进制补码数是0,这个值是通过计算标准二进制数的价值。如果领先的二进制补码数是1,假设获得的价值是负的,最左边一位,然后计算二进制数的价值。例如,

01 = ( 0 + 2 0 ) = 1 11 = ( ( 2 1 ) + ( 2 0 ) ) = ( 2 + 1 ) = 1

计算-使用二进制补码的二进制数,

  1. 的补充。即所有0是翻到1和1 0了。

  2. 添加一个1使用二进制数学。

  3. 丢弃任何比特进行超出原来的单词长度。

例如,考虑负的11010 (6)。首先,把补的数量,或翻转位:

11010年 00101年

接下来,添加一个1,包装所有的数字为0或1:

00101年 + 1 00110年 ( 6 )

加法和减法

定点数的增加要求的二进制点叫做加数是一致的。添加然后使用二进制算术,以便执行其他数量不超过0或1。

例如,考虑增加010010.1和0110.110 (6.75)(18.5):

010010.1 + 0110.110 011001.010 ( 18.5 ) ( 6.75 ) ( 25.25 )

定点减法等价于增加在使用任何负面的二进制补码值的值。在减法,叫做加数必须签署延长互相匹配的长度。例如,考虑从010010.1减去0110.110 (6.75)(18.5):

大多数定点DSP系统工具箱™块执行添加加法器的输入转换为一个蓄电池数据类型执行之前添加。因此,不需要进一步转变期间除了二进制点。看到数据类型转换为更多的信息。

乘法

二进制补码定点数的乘法直接类似于普通小数乘法,除了中间结果必须签署扩展,左手边对齐之前将它们添加在一起。

例如,考虑的乘法10.11 (-1.25),011 (3):

乘法的数据类型

下面的图表显示的数据类型用于定点乘法的系统工具箱软件。图表说明实际使用的数据类型之间的差异,复杂的和非常复杂的乘法。看到个人参考页面确定一个特定的块接受复杂的定点输入。

在大多数情况下,您可以设置数据类型中使用乘法的块面具。有关详细信息,请参见数据类型转换

请注意

下面的图显示了使用乘法的定点数据类型系统工具箱软件。他们不代表实际执行乘法子系统所使用的软件。

实际的乘法。下面的图显示了数据类型用于两个实数的乘法系统工具箱软件。这个操作的软件返回的输出产品输出数据类型,如第二图所示。

更复杂的乘法。下面的图显示了数据类型用于真正的乘法和复杂的定点数系统工具箱软件。更复杂和复杂的乘法是等价的。这个操作的软件返回的输出产品输出数据类型,如第二图所示。

纷繁复杂的乘法。下面的图显示了两个复杂的定点数的乘法系统工具箱软件。注意,此操作的软件返回的输出蓄电池输出数据类型,如第二图所示。

系统工具箱块投到蓄电池数据类型执行加法或减法操作之前。在前面的图中,这相当于C代码

acc =交流;acc - =双相障碍;

减法器,

acc =广告;公元前acc + =;

加法器的acc是蓄电池。

数据类型转换

许多定点系统工具箱块执行算术运算允许您指定蓄电池,中间产品,和产品输出数据类型,如适用,以及输出数据类型的块。本节概述的这些数据类型转换,这样你可以告诉如果你选择的数据类型将调用符号扩展,用0填充,舍入和/或溢出。符号扩展的部分是添加的价值最重要的一些高端的二进制补码数。符号扩展不会改变二进制数的值。填充是扩展的最低有效位二进制字与一个或多个零。

蓄电池数据类型转换

对于大多数定点系统工具箱块执行加法或减法,操作数第一次把一个蓄电池数据类型。大多数时候,您可以指定块上的蓄电池数据类型的面具。,描述蓄电池数据类型参数指定定点属性块。自从叫做加数都投到相同的蓄电池数据类型之前加在一起,不需要额外的转变,以确保他们的二进制点对齐。的结果仍在蓄电池数据类型,与溢出的可能性。

投到中间产品或产品输出数据类型

对于系统工具箱块执行乘法,乘法器的输出被存入一个产品输出数据类型。块,然后饲料产品输出回乘数可能首先丢给一个中间产品数据类型。大多数时候,您可以指定这些数据类型的面具。,描述中间产品产品输出数据类型参数指定定点属性块

输出数据类型转换

许多定点系统工具箱块允许您指定的数据类型和扩展块输出的面具。记住,这个软件不允许混合类型的输入和输出端口块。因此,如果您想要指定一个定点输出数据类型和扩展系统工具箱支持定点数据块类型,你必须喂块的输入端口与一个定点的信号。金宝app最终将由定点系统工具箱块的输出数据类型。

注意,尽管你不能混合定点和浮点信号输入和输出端口的街区,你可以用不同的词和分数有定点信号长度的港口块支持定点信号。金宝app

铸造的例子

重要的是要记住每个演员的影响在选择这些中间数据类型,以及其他中间定点数据类型所允许的一个特定的块。根据您选择的数据类型,可能发生溢出和/或舍入。以下两个例子证明溢出和可能发生的情况。

演员从一个较短的数据类型较长的数据类型。考虑一个非零的演员数量,由四位数据类型表示两个部分,一个八位数据类型和七个部分:

源位图所示,已经转移了,所以二进制点匹配目标二进制点位置。最高的来源不符合,所以可能发生溢出,结果可以饱和或包装。空比特在低端领域目标数据类型的填充与0或1的:

  • 如果溢出不发生,空比特用0填充。

  • 如果包装时,空比特用0填充。

  • 如果发生饱和,

    • 空的一个正数与1的衬垫。

    • 一个负数的空比特填充为0。

你甚至可以看到,从一个较短的数据类型与时间数据类型,溢出仍然可能发生。这可能发生在源数据类型的整数长度(在这种情况下两个)较长整数目标数据类型的长度(在本例中)。同样,舍入可能是必要的,即使铸件从较短的数据类型较长的数据类型,如果目标数据类型和扩展部分比特比源少。

时间数据类型中的一个较短的数据类型。考虑一个非零的演员数量,由一个八位数据类型与七分位,四位数据类型有两个部分:

图所示,源二进制移下来的点匹配目标二进制点位置。没有价值最高的从源,所以结果是符号扩展来填补的整数部分目标数据类型。底部的五位来源不符合的部分长度的目的地。因此,结果是圆形的精度将会丢失。

在这种情况下,即使演员从一个更长的数据类型较短的数据类型,所有整数位。相反,完整的精度可以保持即使你把较短的数据类型,只要分数目标数据类型的长度都是一样的长度或超过的部分长度源数据类型。在这种情况下,然而,一些失去了高端的结果,可能发生溢出。

最坏的情况下发生在长度整数和分数目标数据类型的长度短于源数据的类型和比例。在这种情况下,会发生溢出和精度的损失。