Я работаю над древним кодом Delphi и наткнулся на что-то, чего я не совсем понимаю.
[bla is set to 130245932]
outresult := ((bla * 1103516849) + 12359);
[outresult is equal to -413953101]
Как умножение двух положительных чисел приводит к отрицательному числу? И почему, когда я беру переменную bla из уравнения и просто использую целое число напрямую (как это)
outresult := ((130245932 * 1103516849) + 12359);
Я получаю сообщение об ошибке еще до того, как приложение скомпилируется
[DCC Error] Unit1.pas(60): E2099 Overflow in conversion or arithmetic operation
Некоторый гений был бы признателен. Благодаря.