-div-round-down
R2026b对负数的除法或取模运算的商向下舍入,而不是向上舍入
描述
指定是对负数的除法和取模运算的商向上舍入还是向下舍入。
注意
a = (a / b) * b + a % b 始终为 true。
设置选项
使用以下方法之一设置选项:
Polyspace 平台用户界面(仅限桌面端产品):请参阅
向下舍入负的整数相除结果。Python® API:在编译配置中设置
IntegerDivisionRounding属性。请参阅polyspace.project.BuildConfiguration(Polyspace Test)。TOML 配置文件 (
.toml.pscfg) - 使用值为TOWARDS_ZERO或IMPLEMENTATION_DEFINED的键IntegerDivisionRounding。例如:IntegerDivisionRounding = "TOWARDS_ZERO"
为何使用此选项
使用此选项来模拟您的编译器。
此选项仅适用于遵循 C90 标准 (ISO/IEC 9899:1990) 的编译器。该标准规定:“如果 / 或 % 的任一操作数为负数,则 / 运算符的结果是小于或等于代数商的最大整数,还是大于或等于该商的最小整数,由实现定义;% 运算符的符号适用同样的规则”。该标准允许编译器选择自己的实现。
对于遵循 C99 标准 (ISO/IEC 9899:1999) 的编译器,不需要此选项。该标准强制除法向零舍入(第 6.5.5 节)。
设置
打开如果
/或%的任一操作数为负值,则 / 运算符的结果是小于或等于代数商的最大整数。%运算符的结果从a % b = a - (a / b) * b推断得出。示例:
assert(-5/3 == -2 && -5%3 == 1);为 true。
关闭(默认值)如果
/或%的任一操作数为负值,则/运算符的结果是大于或等于代数商的最小整数。%运算符的结果从a % b = a - (a / b) * b推断得出。此行为也称为向零舍入。
示例:
assert(-5/3 == -1 && -5%3 == -2);为 true。
命令行信息
参数:-div-round-down |
| 默认值:关闭 |
示例 (Bug Finder): polyspace-bug-finder -div-round-down |
示例 (Code Prover):polyspace-code-prover -div-round-down |
示例 (Bug Finder Server): polyspace-bug-finder-server -div-round-down |
示例 (Code Prover Server):polyspace-code-prover-server -div-round-down |