使用C代码生成变化的产品下载188bet金宝搏
介绍通过代码生成产品转变下载188bet金宝搏
MATLAB®编码器™,金宝app®编码器,嵌入式编码器®生成C代码,使用C语言的左移位< <和转变> >操作符。现代的C编译器为运营商转变提供一致的行为。然而,一些移动运营商的行为不能完全由一些C标准定义的。当你使用MathWorks®代码生成的产品,你需要知道如何管下载188bet金宝搏理使用C变化。
二进制补码
二进制补码是一种解释一个二进制数。大多数现代处理器使用二进制补码表示整数。MathWorks®代码生成产品需要C和c++编译器下载188bet金宝搏使用二进制补码代表签署的整数。MathWorks工具箱和文档使用二进制补码表示。
算术和逻辑的转变
主要区别一个算术移位和逻辑的转变是意图。算术的变化有一个数学的意义。逻辑变化的目的是为了移动部分,使它们有用的只有无符号整数被用作位标志的集合。
C语言不区分算术和逻辑的变化,只提供了一套运营商转变。MathWorks代码生成产品使用变化时签署了整数在生成的代码下载188bet金宝搏中,意图始终是一个算术的转变。为无符号整数,没有检测到逻辑和算术之间的行为差异变化。
算术Left-Shifts
一个算术左移代表乘以2的幂。
< < = a * 2 ^
如果产生的价值乘以2 ^b太大了,然后发生溢出。以防溢出的理想答案模周围包裹2 ^n适合的数据类型。人私下偷偷收藏盒式标准指定左移的行为。在一些层面,b位的移位的左端和丢弃。在正确的结束,b值0中转移。标准不指定一个无符号和签署的区别。两个无符号二进制补码签署,有些行为目的提供了算术左移行为水平。
C99标准描述了算法的解释。它还指出,对于签署类型,任何负面的行为是未定义的值或溢出的积极价值。编译器供应商可能利用C99标准未定义行为条款来优化代码的方式改变了行为意图的编码器。如果你的编译器是C99-compliant但不是C90-compliant,然后关闭选项代替乘法与签署两位变化的权力(嵌入式编码)。年长的c++标准遵循人私下偷偷收藏盒式标准关于左移位。更新的c++标准类似于C99标准。
算术Right-Shifts
一个算术右移代表除2的乘方,地板的理想商轮。
> > b = b / 2 ^
当一个是负的,C状态这个算术右移必须提供行为标准。如果一个签署和消极,那么标准的实现定义的行为。C标准要求编译器文档实施行为。几乎所有的编译器实现签署对算术移位,轮转向地板上。这是最简单、最高效的编译器供应商提供的行为。如果你有一个编译器不提供算术右移,或你的编码标准不允许您使用签署了右移,然后你可以选择选项避免签署转变。例如,允许对转变签署整数(嵌入式编码)替换与函数调用签署了正确的转变。
超出范围的变化
在C语言中,当把一个单词长度的整数n,使用数量介于0和转变n- 1、包容。C标准没有定义将由其他金额,如:
将由负常数。
转移的数量大于字长。
当转变量是恒定的,产品不产生超出范围的变化。下载188bet金宝搏超出范围变化的风险来自于显式地建模转变,转变量是一个非恒定的变量。建模时的变化与变量变化量,确保转移数量总是在范围内。
建模的来源变化
有显式和隐式的来源变化模型和算法。
隐式的
定点操作涉及比例变化
当转换定点缩放,如果净斜率变化不是2的幂,然后乘法,净斜率接近理想的转变。净斜率计算的更多信息,请参阅处理净斜率计算。
潜在的更高级的算法(例如,FFT算法)
控制生成的代码的变化
一些配置参数影响的数量和风格的变化出现在生成的代码。
设置这个参数
地板上
或零
为了避免额外的生成的代码。当启用此参数时,使用部门代替乘法转向执行定点净斜率计算紧随其后。
代替乘法与签署两位变化的权力(嵌入式编码)
启用该参数时,乘法的两个签位变化所取代。清除此选项支持MISRA - C™合规。金宝app
允许对转变签署整数(嵌入式编码)
当启用该参数时,生成的代码可以包含在签署了整数位变化。为了防止权利签署了整数位变化,明确这个选项。
选择该参数如果C编译器实现了一个带符号整数正确的转变作为一个算术右移。