Division round down (-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).

Настройки

On

Если любой операнд / или % отрицательно, результат / оператор является самым большим целым числом, меньше чем или равным алгебраическому частному. Результат % оператор выведен из 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
Пример (Bug Finder):  polyspace-bug-finder -div-round-down
Пример (программа автоматического доказательства кода): polyspace-code-prover -div-round-down
Пример (сервер Bug Finder): polyspace-bug-finder-server -div-round-down
Пример (сервер программы автоматического доказательства кода): polyspace-code-prover-server -div-round-down