C - jak udelat CRC

Ing. Pavel Poucha papouch
Středa Březen 17 14:32:08 CET 2004


Pekne posana problematika, ale pro me pole (asi 20 byte) bude jedno bytove
CRC uplne stacit.

Jak byste to ale v Cecku napsal spravne ? Na tu strukturu se vsude divam
jako na strukturu a tak s ni pracuji. At vsak pouziji libovolny z Vami
popsanych algoritmu, divam se na pri vypoctu CRC na strukturu jako na pole
bytu. Je mi jasne, ze pretypovani na (char) prekladac jen uklidnilo, ale
spravne to neni.

S pozdravem
ing. Pavel Poucha

M?te-li chu?, nav?tivte na?e str?nky http://www.papouch.com


----- Original Message -----
From: "Ji?? Krul" <jKrul@seznam.cz>
To: "HWNews" <hw-news@list.gin.cz>
Sent: Friday, June 14, 2002 9:19 PM
Subject: RE:hw-news@list.gin.cz


> Mate stesti a docela hodny prekladac, spravne by to melo skoncit chybou
pri
> prekladu, protoze &Zaznam je ukazatel na datovy typ Zaznam coz je
struktura
> a pretypovani na ukazaterl char  neni implicitne mozne.
>
> Jinak pokud nepocitate CRC - (Cimrman's Redudancy Code) kdyz psal Cimrman
> zdrojove kody v restauraci "U Sirotku", stavalo se mu tesne pred zaviraci
> hodinou, ze videl nektere radky dvojite nebo i trojite. Tyto casti kodu
> oznacoval prave touto zkratkou, ale Cyclic-Redundency-Check presneji CRC8
> tak to se resi jako polynom
>
> CRC== X^8 + X^5 + X^4 + 1
>
> Trocha teorie nikoho nezabije
>
>   CRC je jen jedna zvlastni podmnozina linearnich kodu, ktera ma tu
> vlastnost, ze kazda rotace kodove znacky (znacka = data + zabezpeceni) je
> taky kodovou znackou. Kdyz si tedy vezmete soubor i s crc na konci a cely
> jej
> zrotujete (libovolne krat), tak to bude vzdrycky davat smysl (jeden ze
> zpusobu jak obelstit crc).
>       Zakladem crc je vzdy bazovy polynom (treba x+1 - pro nenarocne).
> Vstupni data jsou chapana take jako polynom: treba 10010 je 1+x^3 (zleva
od
> nejnizzsiho stupne). Vynasobenim techto dvou polynomu (s uvazenim, ze
> pracuji
> pouze s binarnimi cisly >> 2x=0 treba) a naslednym prevedenim zpet do
> binarni
> podoby se dostane blok dat i ze zabezpecenim (tedy data + crc).
>
>       Bazovy polynom samozrejme nejde zvolit jen tak libovolne, nebot musi
> splnovat urcite vlastnosti (jeho stupen je roven poctu bitu zabezpeceni -
> pro
> 32CRC je tedy potreba polynom 32teho stupne). V literature se to jenom
hemzi
> ruznymy polynomy (velmes 64, 32 nebo 16), pricemz ty se pouze lysi tim,
> kolik
> n nasobnych chyb je schopen 100% detekovat.
>
>       Tento popsany algoritmus ma tu nevyhodu, ze neni systematycky -
tedy,
> ze
> vstupni data jsou navic zkodovana (nezustanou v puvodnim tvaru). Pokud by
> nekdo potreboval systematicky kod, tka mu poradim, ze se to dela naopak
> delenim (specialnim samozrejme).
>
>       CRC se dopotucuje pouzivat na kratsi bloky dat (tak 4k)....
>
>
> Na netu je zada zdrojaku pro CRC8 CRC16 a CRC32 pro kdejaky procesor,
> optimalizovane na rychlost, velikost atd.
>
>
>
>
> S pzd J.Krul
>
>
>


---
Odchoz? zpr?va neobsahuje viry.
Zkontrolov?no antivirov?m syst?mem AVG (http://www.grisoft.cz).
Verze: 6.0.370 / Virov? b?ze: 205 - datum vyd?n?: 5.6.2002





Další informace o konferenci Hw-list