-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 |