Salt la conținut

SUBIECTE NOI
« 1 / 5 »
RSS
Caut splitter semnal satelit

Instalatii sanitare

Program de slabire cu succes gara...

Reconditionare cada baie din fonta
 Problema imprimanta

Here goes nothing

BCR sau Raiffeisen

Visual Studio 2022 instaleaza Epi...
 Sfat alegere parbriz

EMAG - recenzii false facute de ei?

Recomandare telefon 900-950

Nivel de trai
 Semnal bun da'... prost

De ce statiile de radio FM nu ren...

Pe unde pot sa gasesc statistici ...

Este reconditionat acest laptop?
 

Help CRC

- - - - -
  • Vă rugăm să vă autentificați pentru a răspunde
Niciun răspuns pentru acest subiect

#1
diaconuliviu

diaconuliviu

    Senior Member

  • Grup: Senior Members
  • Mesaje: 4.772
  • Înscris: 19.01.2005
Vreau sa calculez CRC pentru un sir de valori hexa dintr-o memorie dupa o anumita formula gasita si folosita si de producatori.

i:integer;
CRC:word;
Hig,Low:byte;
bin[$0,$9F]:array of bytes;

  


i:=$0;
    CRC:=$AAAA;
    while i<$7E do

    begin //CRC cicle
   //writeln('I= ',i);

    CRC:=CRC xor ((bin[i+$1] shl $8) or bin[i]);

   //Writeln(' XORCRC  ',CRC);

    //CRC:=(CRC + CRC) or (CRC shr $F);

CRC:=(CRC shl $1) or (CRC shr $F);
   //Writeln('   ORCRC  ',CRC);

    i:=i+$2;



    end;  //CRC cicle

    Hig:=Hi(CRC);
    Low:=Lo(CRC);

    bin[$7E]:=Hig;
    bin[$7F]:=Low;


Primii octeti sint 00 40.
Deja dupa prima iteratie CRC trece de $FFFF si creste in continuare, cind de fapt, la final ar trebui sa fie doi octeti;
Unde gresesc?
Am folosit Free Pascal IDE

Multumesc

Editat de diaconuliviu, 25 mai 2016 - 14:44.


Anunturi

Bun venit pe Forumul Softpedia!

Utilizatori activi: 1

0 membri, 1 vizitatori, 0 utilizatori anonimi

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate