定点操作Stateflow图表
定点数字使用整数,整数运算近似实数。他们使您能够执行计算涉及实数不需要浮点底层系统硬件的支持。万博1manbetx有关更多信息,请参见定点Stateflow图表中的数据。
定点数据的算术运算
定点之间的一般方程为一个二进制算术运算操作数
c =一个< op >b
一个
和b
是定点数字和< op >
指的是加法、减法、乘法或除法。操作的结果是一个定点数c
的形式
Vc
≈年代c
问c
+Bc
。
的定点类型c
决定了边坡年代c
的偏见Bc
,用于存储的比特数量子化的整数问c
。对于每一个算术运算,该表列出了量子化的整数的值问c
根据操作数的值(一个
和b
)和定点类型c
。
操作 | 斜率和偏见扩展 | 二进制小数点扩展 | |
---|---|---|---|
除了 |
c = a + b |
问c =圆((年代一个 /年代c )问一个 + (年代b /年代c )问b + (B一个 +Bb - - - - - -Bc )/年代c ) |
问c =圆((年代一个 /年代c )问一个 + (年代b /年代c )问b ) |
减法 |
c = a - b |
问c =圆((年代一个 /年代c )问一个 - (年代b /年代c )问b - (B一个 - - - - - -Bb - - - - - -Bc )/年代c ) |
问c =圆((年代一个 /年代c )问一个 - (年代b /年代c )问b ) |
乘法 |
c = a * b |
问c =圆((年代一个 年代b /年代c )问一个 问b + (B一个 年代b /年代c )问一个 + (Bb 年代一个 /年代c )问b + (B一个 Bb - - - - - -Bc )/年代c ) |
问c =圆((年代一个 年代b /年代c )问一个 问b ) |
部门 |
c = a / b |
问c =圆((年代一个 问一个 +B一个 )/ (年代c (年代b 问b +Bb )- (Bc /年代c )) |
问c =圆((年代一个 / (年代b 年代c ))问一个 /问b ) |
为了简化这些表情和避免计算昂贵的操作,使用二进制小数点伸缩编码所有定点数据。这个设置,斜率为2的整数幂和偏差为零。然后,所有定点操作由整数运算和一些变化在量子化的整数。
请注意
算术运算的结果取决于舍入方法,计算的价值量化的整数问c
。有关更多信息,请参见转换操作。
关系为定点数据操作
您可以使用关系操作比较定点数据。比较不同类型的定点值可以产生意想不到的结果,因为每个操作数转换为比较常见。由于舍入或溢出错误转换期间,一些价值观似乎定点数相等不相等。
例如,假设一个
和b
代表了现实世界的价值V= 2.2在两个不同的定点编码方案:
一个
是一个与斜率定点数年代一个
= 0.3和偏见B一个
= 0.1。的量子化的整数一个
是:问
一个
= (V- - - - - -B一个
)/年代一个
= (2.2 - 0.1)/ 0.3 = 7。b
是一个与斜率定点数年代b
= 0.7和偏见Bb
= 0.1。的量子化的整数b
是:问
b
= (V- - - - - -Bb
)/年代b
= (2.2 - 0.1)/ 0.7 = 3。
比较这些值,首先将它们转换为一个共同的定点类型的图表和斜率年代电脑及相关知识= 1.06811 * 105≈年代一个
/ 28087≈年代b
·2-16年和偏见B电脑及相关知识= 0.1。(在这种情况下,斜率年代电脑及相关知识来自的近似值年代一个
/年代b
= 0.3/0.7≈28087·2-16年)。在这种常见的编码方案,一个
和b
对应于这些量化的整数:
问一个“
=年代一个
问一个
/年代电脑及相关知识=问一个
(年代一个
/年代电脑及相关知识7)≈⨉28087 = 196609
问b”
=年代b
问b
/年代电脑及相关知识=问b
(年代b
/年代电脑及相关知识3)≈⨉216= 196608。
转换后,量子化的整数是不同的。虽然一个
和b
表示相同的实际价值,他们是不平等的定点数字。
请注意
图表中使用C作为行动的语言,比较不支持定点操作数不匹配的偏见。万博1manbetx
为定点数据逻辑运算
在一个逻辑操作,定点操作数一个
被解释为假
如果它对应于现实世界的定点类型的值为零一个
。否则,一个
被解释为真正的
。
在使用MATLAB的图表®作为动作语言,使用
一个
在一个逻辑操作相当于表达式~ =投(0,“喜欢”,)
。图表中使用C作为行动的语言,使用
一个
在一个逻辑操作相当于表达式一个! c = 0
,在那里0 c
是一个定点上下文相关的常数。看到定点上下文相关的常数。
例如,假设一个
是一个斜率的定点号码年代一个
= 0.25和偏见B一个
= 5.1。使用一个
在一个逻辑操作相当于测试是否量子化的整数问一个
满足条件
问一个
= ((0 -B一个
)/年代一个
)=圆(-5.1/0.25)= (-20.4)= -20。
因此,一个
相当于假
当它真实的近似
V一个
≈年代一个
问一个
+B一个
= 0.25⨉(-20)+ 5.1 = 0.1。
晋升为定点操作规则
选择数值类型的规则用于手术的结果被称为定点数字定点推广规则。这些规则有助于维护计算效率和可用性。
定点推广规则确定手术的结果类型c =一个
通过选择斜率年代< op >
bc
的偏见Bc
的比特数wc
用于存储量子化的整数问c
。这些参数取决于定点操作数的类型一个
和b
,操作< op >
执行和操作语言属性图。
在一个图表,使用MATLAB作为行动的语言,你控制定点推广规则通过定点属性图。看到定点属性。
如果你设置MATLAB图表
fimath
财产MATLAB一样
,然后算术运算按照默认为MATLAB定点促销规则。看到执行定点算术(定点设计师)。如果你指定一个图表
fimath
对象与SumMode
和ProductMode
设置为SpecifyPrecision
这个词,那么您可以定义长度、斜率,所有资金和产品明确和偏见。s manbetx 845看到fimath对象属性(定点设计师)。
在一个图表,使用C作为动作语言,定点推广规则确定类型的中间值结果。这个中间值然后投到您指定的类型
c
。对于所有算术运算,默认的比特数
wc
用于存储量子化的整数之间的大的值是:位的最大数量的操作数类型(
w一个
和wb
)。的比特数的整数文字大小为目标机(
wint
)。
指定的价值
wint
,打开配置参数对话框硬件实现窗格中,设置设备供应商参数定制的处理器
和int参数目标整数文字大小。有关更多信息,请参见硬件实现面板(万博1manbetx模型)。你可以避免溢出,提高精度的浮点操作使用特种作业操作表单
c: =
。特种作业操作不遵循定点促销规则。相反,图表决定操作的结果通过使用您指定的类型< op >
bc
。看到在C图覆盖定点推广。
加法和减法
默认情况下,图表,使用MATLAB作为行动语言支持加法和减法只在定点数据通过二进制小数点扩展定义。万博1manbetx如果操作数是一个签署了定点数,那么结果是还签署了。单词长度的选择适应每个操作数的整数和分数部分除了可能的移位。结果的部分长度等于部分长度的最精确的操作数。执行加法和减法定点数据定义为使用一个斜坡,不是两个或两个非零的整数次幂偏见,指定一个图表fimath
对象与SumMode
设置为SpecifyPrecision
。
图表使用C作为动作语言支持的加法和减法操作数的定点数据类型。万博1manbetx结果是一个签署了定点数只有两个操作数都签署。混合签署和无符号操作数可以产生意想不到的结果,不推荐。结果的斜率等于斜率的最精确的操作数。为了简化计算和产生高效的代码,添加两个输入的偏见的加法操作和减去减法操作。
一个 |
b |
MATLAB作为动作语言 | C作为动作语言 | |
---|---|---|---|---|
标志 | 年代一个 |
年代b |
年代c =年代一个 | | 年代b |
年代c =年代一个 & & 年代b |
字长 | w一个 |
wb |
wc = max (w一个 - - - - - -f一个 ,wb - - - - - -fb )+马克斯(f一个 ,fb )+ 1 |
wc = max (w一个 ,wb ,wint ) |
部分长度 | f一个 |
fb |
fc = max (f一个 ,fb ) |
fc = min (f一个 ,fb ) |
坡 | 年代一个 (2- - - - - -f一个如果使用二进制小数点缩放) |
年代b (2- - - - - -fb如果使用二进制小数点缩放) |
年代c = min (年代一个 ,年代b ) |
年代c = max (年代一个 ,年代b ) |
偏见 | B一个 如果使用二进制小数点缩放(0) |
Bb 如果使用二进制小数点缩放(0) |
Bc = 0 |
Bc =B一个 +Bb 为添加或Bc =B一个 - - - - - -Bb 为减 |
乘法
默认情况下,图表,使用MATLAB作为行动语言支持乘法只在定点数据通过二进制小数点扩展定义。万博1manbetx如果操作数是一个签署了定点数,那么结果是还签署了。完整的精密产品需要一个单词长度等于操作数的单词长度的总和。产品的部分长度操作数的部分长度的总和。上执行乘法定点数据定义为使用一个斜坡,不是两个或两个非零的整数次幂偏见,指定一个图表fimath
对象与ProductMode
设置为SpecifyPrecision
。
图表,使用C作为行动语言支持只在定点乘法操作数的数据定义为非零偏差。万博1manbetx结果是一个签署了定点数只有两个操作数都签署。混合签署和无符号操作数可以产生意想不到的结果,不推荐。一个产品的斜率是山坡上的操作数的乘积。
一个 |
b |
MATLAB作为动作语言 | C作为动作语言 | |
---|---|---|---|---|
标志 | 年代一个 |
年代b |
年代c =年代一个 | | 年代b |
年代c =年代一个 & & 年代b |
字长 | w一个 |
wb |
wc =w一个 +wb |
wc = max (w一个 ,wb ,wint ) |
部分长度 | f一个 |
fb |
fc =f一个 +fb |
fc =f一个 +fb |
坡 | 年代一个 (2- - - - - -f一个如果使用二进制小数点缩放) |
年代b (2- - - - - -fb如果使用二进制小数点缩放) |
年代c =年代一个 年代b |
年代c =年代一个 年代b |
偏见 | B一个 = 0 |
Bb = 0 |
Bc = 0 |
Bc = 0 |
部门
图表,使用MATLAB作为行动语言支持部门只有在定点数据通过二进制小数点扩展定义。万博1manbetx如果操作数是一个签署了定点数,那么结果是还签署了。完整的精密商需要单词长度等于操作数的最大比特数。商的部分长度的差异部分操作数的长度。
图表使用C作为定点数据操作语言支持部门操作数定义为非零偏差。万博1manbetx结果是一个签署了定点数只有两个操作数都签署。混合签署和无符号操作数可以产生意想不到的结果,不推荐。的斜率系数的商操作数的斜坡。
一个 |
b |
MATLAB作为动作语言 | C作为动作语言 | |
---|---|---|---|---|
标志 | 年代一个 |
年代b |
年代c =年代一个 | | 年代b |
年代c =年代一个 & & 年代b |
字长 | w一个 |
wb |
wc = max (w一个 ,wb ) |
wc = max (w一个 ,wb ,wint ) |
部分长度 | f一个 |
fb |
fc =f一个 - - - - - -fb |
fc =f一个 - - - - - -fb |
坡 | 年代一个 (2- - - - - -f一个如果使用二进制小数点缩放) |
年代b (2- - - - - -fb如果使用二进制小数点缩放) |
年代c =年代一个 /年代b |
年代c =年代一个 /年代b |
偏见 | B一个 = 0 |
Bb = 0 |
Bc = 0 |
Bc = 0 |
一元-
唯一的一元运算,需要推广它的结果类型是一元-操作c = -
。无符号的负面定点数可以产生意想不到的结果,不推荐。的字大小的行动结果取决于语言属性图。结果的斜率等于操作数的斜率。结果的偏差类型是消极偏见的操作数。
一个 |
MATLAB作为动作语言 | C作为动作语言 | |
---|---|---|---|
标志 | 年代一个 |
年代c =年代一个 |
年代c =年代一个 |
字长 | w一个 |
wc =w一个 |
wc = max (w一个 ,wint ) |
部分长度 | f一个 |
fc =f一个 |
fc =f一个 |
坡 | 年代一个 (2- - - - - -f一个如果使用二进制小数点缩放) |
年代c =年代一个 |
年代c =年代一个 |
偏见 | B一个 如果使用二进制小数点缩放(0) |
Bc = -B一个 |
Bc = -B一个 |
算法与混合数值类型
这个表总结了定点推广之间的二元运算规则定点号码和一个不同的数字类型的操作数。
数值类型的第二个操作数 | MATLAB作为动作语言 | C作为动作语言 |
---|---|---|
浮点数:
|
在执行操作之前,图表将浮点操作数转换为定点数量。演员使用的类型取决于操作:
操作的结果是一个定点数。 |
在执行操作之前,图表将定点操作数转换为浮点数。铸造操作使用相同的类型( |
整数:
|
整型操作数被当作一个定点数相同的字长和signedness斜率年代= 1和偏见B= 0。操作的结果是一个定点数。 |
整型操作数被当作一个定点数相同的字长和signedness斜率年代= 1和偏见B= 0。操作的结果是一个定点数。 |