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

Настройки

На

Если оба операнда / или % отрицательно, результат оператора/является самым большим целым числом, меньшим или равным алгебраическому фактору. Результат % оператор выводится из a % b = a - (a / b) * b.  

Пример: assert(-5/3 == -2 && -5%3 == 1); является true.

Off (по умолчанию)

Если оба операнда / или % отрицательно, результат / оператор является наименьшим целым числом, большим или равным алгебраическому фактору. Результат % оператор выводится из a % b = a - (a / b) * b.

Это поведение также известно как округление к нулю.

Пример: assert(-5/3 == -1 && -5%3 == -2); является true.

Информация о командной строке

Параметр: -div-round-down
По умолчанию: Off
Пример (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