@Medium
wo findet der Überlauf statt?
Delphi-Quellcode:
Function GetDoubleByte(i:Integer):Byte;
Begin
Result := i * 2;
if Result > 255 then Result := 255;
End;
Die Prüfung auf >255 bringt hier nichts, weil der Typ des Rückgabewerts Byte ist. D.h. bei der Prüfung hat der Überlauf schon stattgefunden. Wenn dann so:
Delphi-Quellcode:
Function GetDoubleByte(i:Integer):Byte;
var
tmp: Integer;
Begin
tmp := i * 2;
if tmp > 255 then tmp:= 255;
Result := tmp;
End;
Ist aber unnötig umständlich. Da würde ich Mediums Variante mit der
min
-Funktion (
Unit "math") vorziehen.