![]() |
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; |
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 |
Re: Hilfe bei C++ Übersetzung
Delphi-Quellcode:
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.
function SwapHiLo(const AWord: Word): Word;
begin result := Hi(AWord) or (Lo(AWord) shl 8); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 Uhr. |
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