Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#12

AW: Konvertierung von BigEndian-Werten

  Alt 25. Jul 2012, 17:11
Wobei du in Big2Little32R unnötig viel umkopierst.
Und da du sowieso alle Bytes wieder überschreibst, muß es auch nicht initialisiert werden (wert=0)
Delphi-Quellcode:
function Big2Little32R(ina:tpa4):integer;
type
  tLittRec=record
         case integer of
         2 : (aa: array [0..3] of byte);
  end;
var
  my : tLittRec absolute Result;
begin
  my.aa[0]:=ina[3];
  my.aa[1]:=ina[2];
  my.aa[2]:=ina[1];
  my.aa[3]:=ina[0];
end;

function Big2Little32R(ina:tpa4):integer;
type
  tLittRec= array [0..3] of byte;
var
  my : tLittRec absolute Result;
begin
  my[0]:=ina[3];
  my[1]:=ina[2];
  my[2]:=ina[1];
  my[3]:=ina[0];
end;

function Big2Little32R(ina: tpa4): LongInt;
var
  res: tpa4 absolute Result;
begin
  res[0] := ina[3];
  res[1] := ina[2];
  res[2] := ina[1];
  res[3] := ina[0];
end;

function Big2Little32R(ina: tpa4): LongInt;
begin
  tpa4(Result)[0] := ina[3];
  tpa4(Result)[1] := ina[2];
  tpa4(Result)[2] := ina[1];
  tpa4(Result)[3] := ina[0];
end;
Wobei alle Vier im Prinzip auf's Selbe rauslaufen, also nach dem Kompilieren.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (25. Jul 2012 um 17:42 Uhr)
  Mit Zitat antworten Zitat