Оператор мода в Free Pascal дает результат, отличный от ожидаемогоPython

Программы на Python
Ответить
Anonymous
 Оператор мода в Free Pascal дает результат, отличный от ожидаемого

Сообщение Anonymous »

Оператор mod в Free Pascal не дает ожидаемых результатов.
Это можно продемонстрировать на примере программы ниже, вывод которой не согласуется с результатом тот же расчет в Python (или Google).

Код: Выделить всё

program test(output);

var
a, b, c: longint;

begin
a := -1282397916;
b := 2147483647;
c := a mod b;
writeln (c:16);
end.

Код: Выделить всё

     -1282397916
Сравните это с выводом приведенного ниже сценария Python, который дает ожидаемый результат.

Код: Выделить всё

#!/usr/bin/python

a = -1282397916
b = 2147483647
c = a % b
print (c)

Код: Выделить всё

865085731
Это тот же результат, что и результат, полученный при вставке следующего текста в Google (и при использовании оператора mod в VAX‑Pascal).

Код: Выделить всё

(-1282397916 % 2147483647)
Вопрос: почему Free Pascal ведет себя по-другому? И как мне получить тот же результат, что и при использовании оператора mod в Python?


Подробнее здесь: https://stackoverflow.com/questions/793 ... n-expected
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»