Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Hilfe bei C++ Übersetzung (https://www.delphipraxis.net/109041-hilfe-bei-c-uebersetzung.html)

Muetze1 25. Feb 2008 10:30

Re: Hilfe bei C++ Übersetzung
 
Der CRC16 Algo ist Standard, der Start Seed value wäre nur interessant gewesen, den hättest du den zig verschiedenen Implementationen u.a. hier im Forum einsetzen können. Ansonsten anstatt einem Array of Byte wäre es eigentlich ein Pointer auf ein Byte in der Funktion.

Delphi-Quellcode:
function CalcCRC16(const buf_ptr: Pointer; len: LongWord; const value: boolean): LongWord;
var
  lData: PByte;
  lCRC: Word;
  i: Integer;
begin
  lCRC := CRC_16_SEED;
  lData := buf_ptr;

  if value then
  begin
    Inc(lData);
    Dec(len);
  end;

  for i := 1 to len do
  begin
    lCRC := crc_16_1_step(lCRC, lData^);
    Inc(lData);
  end;

  result := lCRC xor CRC_16_SEED;
end;

Gehstock 25. Feb 2008 11:04

Re: Hilfe bei C++ Übersetzung
 
Danke so gehts noch ne frage zum Result z.B.1234 brauch ich als 3412
muss ich erst in einen string umwandeln und dann tauschen oder gibt es einen kürzeren weg

Muetze1 25. Feb 2008 13:00

Re: Hilfe bei C++ Übersetzung
 
Delphi-Quellcode:
function SwapHiLo(const AWord: Word): Word;
begin
  result := Hi(AWord) or (Lo(AWord) shl 8);
end;
Du hast doch jetzt bestimmt auch schon ein paar Routinen für den BigEndian/LowEndian Byte-Swap. Diese kannst du einfach nutzen, da zweimal geswappt wieder original ist - wenn du verstehst was ich meine.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz