主要内容

-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