Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Operationen mit Bitstrukturen optimieren

  Alt 30. Okt 2017, 18:50
Eventuell so:
(Nicht getestet!)
Delphi-Quellcode:
PROCEDURE GetSteps(H1,H2,H3:Byte; var DX,DY:Integer);
begin
   DX:=Ord(H1 and 1>0) - // dx:=StrToInt(hs1[8]) -
       Ord(H1 and 2>0) + // StrToInt(hs1[7]) +
       9*Ord(H1 and 4>0) - // 9*StrToInt(hs1[6]) -
       9*Ord(H1 and 8>0) + // 9*StrToInt(hs1[5])+
       3*Ord(H2 and 1>0) - // 3*StrToInt(hs2[8]) -
       3*Ord(H2 and 2>0) + // 3*StrToInt(hs2[7]) +
       27*Ord(H2 and 4>0) - // 27*StrToInt(hs2[6]) -
       27*Ord(H2 and 8>0) + // 27*StrToInt(hs2[5]) +
       81*Ord(H3 and 4>0) - // 81*StrToInt(hs3[6]) -
       81*Ord(H3 and 8>0); // 81*StrToInt(hs3[5]);

   DY:=Ord(H1 and 128>0) - // dy:=StrToInt(hs1[1]) -
       Ord(H1 and 64>0) + // StrToInt(hs1[2]) +
       9*Ord(H1 and 32>0) - // 9*StrToInt(hs1[3]) -
       9*Ord(H1 and 16>0) + // 9*StrToInt(hs1[4]) +
       3*Ord(H2 and 128>0) - // 3*StrToInt(hs2[1]) -
       3*Ord(H2 and 64>0) + // 3*StrToInt(hs2[2]) +
       27*Ord(H2 and 32>0) - // 27*StrToInt(hs2[3]) -
       27*Ord(H2 and 16>0) + // 27*StrToInt(hs2[4]) +
       81*Ord(H3 and 32>0) - // 81*StrToInt(hs3[3]) -
       81*Ord(H3 and 16>0); // 81*StrToInt(hs3[4]);
end;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat