Thema: Delphi Simulate infrared film

Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Simulate infrared film

  Alt 29. Nov 2010, 16:24
@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.
  Mit Zitat antworten Zitat