-div-round-down
)Округлите частных в меньшую сторону от деления или модуля отрицательных чисел вместо окружения
Задайте, окружены ли частные от деления и модуля отрицательных чисел или вниз.
Примечание
a = (a / b) * b + a % b
всегда верно.
Пользовательский интерфейс (только десктопные решения): В вашей настройке проекта опция находится на узле Target & Compiler.
Командная строка: Используйте опцию -div-round-down
. Смотрите информацию о командной строке.
Используйте эту опцию, чтобы эмулировать ваш компилятор.
Опция важна только для компиляторов в соответствии со стандартом 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);
верно.
Если любой операнд /
или %
отрицательно, результат /
оператор является самым маленьким целым числом, больше, чем или равный алгебраическому частному. Результат %
оператор выведен из a % b = a - (a / b) * b
.
Это поведение также известно как округление по направлению к нулю.
Пример: assert(-5/3 == -1 && -5%3 == -2);
верно.
Параметр:
-div-round-down |
Значение по умолчанию: Off |
Пример (средство поиска ошибки):
polyspace-bug-finder -div-round-down |
Пример (программа автоматического доказательства кода):
polyspace-code-prover -div-round-down |
Пример (сервер средства поиска ошибки): polyspace-bug-finder-server -div-round-down |
Пример (сервер программы автоматического доказательства кода):
polyspace-code-prover-server -div-round-down |