![]() |
csum-Function von C++ nach Delphi
Hi Leute,
ich zerbrech mir schon seit geraumer Zeit den Kopf darüber, wie ich folgenden C++-Code in Delphi übersetzen kann.
Code:
Könnt ihr mir helfen?
int csum(const void *bufv, int length)
{ const unsigned short *buf = (const unsigned short *)bufv; unsigned long result = 0; while (length > 1) { result += *(buf++); length -= sizeof(*buf); } if (length) result += *(unsigned char*)buf; result = (result >> 16) + (result & 0xFFFF); result += (result >> 16); result = (~result)&0xFFFF; return (int)result; } Danke im Voraus, Mfg, Sebastian R.! |
Re: csum-Function von C++ nach Delphi
Hi
Zitat:
Delphi-Quellcode:
Der einzige groessere unterschied zur Implementierung oben ist, dass ich nicht buf, also den ArrayZeiger inkrementiere, sondern dass ich ueber einen Index (bufIndex) nacheinander auf die Elemente zugreife. ;)
function csum(const bufv: Pointer; length: integer): integer;
var res, bufIndex: cardinal; buf: packed array of word; begin res := 0; bufIndex := 0; buf := bufv; while (length > 1) do begin inc(res, buf[bufIndex]); inc(bufIndex); dec(length, sizeof(word)); end; res := (res shr 16) + (res and $FFFF); inc(res, res shr 16); res := (not res) and $FFFF; result := Integer(res); end; greetz Mike |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 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