Ver Mensaje Individual
  #2  
Antiguo 28-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola DarkDudae.

Desconozco la funcionalidad del código, pero enviándole los mismos valores como argumentos, de este modo obtengo resultados idénticos en C++ Builder y Delphi:
Código Delphi [-]
function crc8(ptr: array of Byte; length: Word): Byte;
var
  i,n,datum : Word;
  merker: Byte;
begin
  Result:= 0;
  for i:= Low(ptr) to High(ptr) do
  begin
    datum := ptr[i];
    Result:= Result xor datum;
    for n:= 0 to 7 do
    begin
      merker:= Integer(Boolean(Result and 1));
      Result:= Result shr 1;
      if Boolean(merker) then
        Result:= Result xor $92;
    end;
  end;
end;

Código Delphi [-]
function crc16(ptr: array of Byte; length: Word): Word;
var
  i, n, j, datum : Word;
  highbyte, lowbyte, merker: Byte;
begin
  Result:= 0;
  j:= 0;
  for i:= 0 to (length shr 1)-1 do
  begin
    highbyte:= ptr[j];
    Inc(j, SizeOf(Byte));
    lowbyte := ptr[j];
    Inc(j, SizeOf(Byte));
    datum   := highbyte;
    datum   := datum shl 8;
    datum   := datum or lowbyte;
    Result  := Result xor datum;
    for n:= 0 to 15 do
    begin
      merker:= Result and 1;
      Result:= Result shr 1;
      if Boolean(merker) then
        Result:= Result xor $8408;
    end;
  end;
end;
Proba las funciones y me comentas.

Saludos

Edito: Donde dije "Desconozco la funcionalidad" quise decir que desconozco si el código original funciona, disculpas por la redacción
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 28-11-2013 a las 20:07:48.
Responder Con Cita