exponenta event banner

Дивизионный раунд вниз (-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
По умолчанию: Откл.
Пример (поиск ошибок):  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