CRC32

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Hello All.

Как-то в этой эхе я увидел чудный исходник для подсчёта CCITT CRC16:


byte crcbuf_hi, crcbuf_lo;

void Byte_CRC(byte Data) {
  byte carry;
      carry = crcbuf_hi ^ Data;
      carry = carry ^ (carry>>4);
      crcbuf_hi = crcbuf_lo ^ (carry<<4) ^ (carry>>3);
      crcbuf_lo = carry ^ (carry<<5);
}


Kоротко, ясно, быстро.  А нет ли чего-то похожего для CRC32?


Dimmy.


CRC32
Hello Dimmy!

23 Oct 33 06:53, Dimmy Timchenko wrote to All:

 DT> Hello All.

 DT> Как-то в этой эхе я увидел чудный исходник для подсчёта CCITT CRC16:

[...]

 DT> Kоротко, ясно, быстро.  А нет ли чего-то похожего для CRC32?

Вот такая фигня у меня недавно родилась:


unsigned long crc32wot(unsigned char sym, unsigned long crc)
{
 unsigned long c1;

 c1=(crc^sym)&255;


 for (int j = 8; j > 0; j--)
     {
     if (c1 & 1)
         c1 = (c1 >> 1) ^ 0xEDB88320L;
     else
         c1 >>= 1;
     }


 crc= c1 ^(((crc)>>8)&0x00FFFFFFL);
 return crc;
}


Sergei


CRC32
Hello Sergei.

Tue Oct 25 2005 00:41, Sergei Podstrigailo wrote to me:

 DT>> Kоротко, ясно, быстро.  А нет ли чего-то похожего для CRC32?

 SP> Вот такая фигня у меня недавно родилась:

Спасибо, вещь компактная, но тут цикл - то есть не очень быстро... хотя для PC
пойдёт. :)


Dimmy.


CRC32
Hello Dimmy!

25 Oct 33 07:07, Dimmy Timchenko wrote to Sergei Podstrigailo:

 SP>> Вот такая фигня у меня недавно родилась:

 DT> Спасибо, вещь компактная, но тут цикл - то есть не очень быстро...
 DT> хотя для PC пойдёт. :)

Так для PC и табличный вариант пойдет :-)


Sergei


Site Timeline