Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#10

AW: Datentype Array of Byte und Cardinal

  Alt 5. Apr 2011, 08:26
Fertig und geht:
Delphi-Quellcode:
//...
procedure TCardinalRec.SetCardinal(const Value : Cardinal);
begin
  _Byte[0] := Value shr 24;
  _Byte[1] := Value shr 16;
  _Byte[2] := Value shr 8;
  _Byte[3] := Value and $FF;
end;
Das geht aber nur deshalb, weil Du Rangecheck ausgeschaltet hast oder zu kleine Werte nimmst. Immerhin scheinst Du ja nur zu 75% überzeugt zu sein, sonst hättest Du ja auch konsequenterweise _Byte[3] := Value; gesetzt. Also:
Delphi-Quellcode:
procedure TCardinalRec.SetCardinal(const Value : Cardinal);
begin
  _Byte[0] := Value shr 24 and $FF;
  _Byte[1] := Value shr 16 and $FF;
  _Byte[2] := Value shr 8 and $FF;
  _Byte[3] := Value and $FF;
end;
wobei man sich bei der _Byte[0]-Berechnung theroretisch das and $FF sparen könnte.
  Mit Zitat antworten Zitat