-div-round-down
对负数的除法或取模运算的商向下舍入,而不是向上舍入
描述
指定是对负数的除法和取模运算的商向上舍入还是向下舍入。
注意
a = (a / b) * b + a % b 始终为 true。
为何使用此选项
使用此选项来模拟您的编译器。
此选项仅适用于遵循 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 |