主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

将二次幂的乘法替换为有符号按位移位

将二次幂的乘法替换为有符号按位移位

模型配置窗格: 代码生成 / 代码样式

描述

指定是否用有符号的按位移位替换 2 的幂的乘法。某些编码标准(例如 MISRA)不允许对有符号整数进行按位运算。清除此选项会增加生成符合 MISRA C™ 的代码的可能性。

设置

on (默认) | off

默认值:on

On

生成用有符号位移位代替 2 的幂乘法的代码。

Off

不允许用有符号移位来代替 2 的幂的乘法。清除此选项支持 MISRA C 合规性。

示例

全部展开

比较当您将将二次幂的乘法替换为有符号按位移位设置为不同的值时,生成的代码如何实现 2 的幂的乘法。

这是使用默认将二次幂的乘法替换为有符号按位移位on 生成的代码。在生成的代码中,乘以 8 的运算左移:

Y.Out1 = (U.In1 << ((int8_T)3));

这是将将二次幂的乘法替换为有符号按位移位设置为 off 后生成的相同代码。乘以 8 不会被位移位所取代:

Y.Out1 = U.In1 * ((int64_T)8);

推荐的设置

应用情形设置
调试无影响
可追溯性无影响
效率On
安全预警无影响

编程用法

参数:EnableSignedLeftShifts
类型:字符向量
值: 'on' | 'off'
默认值:'on'

版本历史记录

在 R2011b 中推出