Cuando un
SmallInt excede del valor que puede almacenar, puede tener dos estados (Positivo o Nevativo)
SmallInt = Valor que se le pasa originalmente - (32767 * 2) - 2
eje:
Código Delphi
[-]var
a: Integer;
b: SmallInt;
begin
a := 86000;
b := a;
ShowMessage(Format('a = %d, b = %d', [a, b]));
end;
Resultado es: a = 36000, b = -29536
Resultado es: a = 86000, b = -20464
Un saludo.