vmp (02.07.2012 18:11 - 18:18, просмотров: 128) ответил SciFi на Пожалуйста, киньте ссылку на код CRC32 (Ethernet) с генерацией таблицы в ОЗУ при старте.
Генерацию таблицы для CRC32 дергал из исходников unrar. Тот ли там полином - не помню. http://www.rarlab.com/rar/unrarsrc-4.2.4.tar.gz
// CRCTab duplicates crc_tables[0], but we still need it to decrypt
// old version RAR archives. GUI code might use it for ZIP encryption.
uint CRCTab[256];
static uint crc_tables[8][256]; // Tables for Slicing-by-8.
void InitCRC()
{
for (uint I=0;I<256;I++) // Build the classic CRC32 lookup table.
{
uint C=I;
for (uint J=0;J<8;J++)
C=(C & 1) ? (C>>1)^0xEDB88320L : (C>>1);
CRCTab[I]=crc_tables[0][I]=C;
}
for (uint I=0;I<=256;I++) // Build additional lookup tables.
{
uint C=crc_tables[0][I];
for (uint J=1;J<8;J++)
{
C=crc_tables[0][(byte)C]^(C>>8);
crc_tables[J][I]=C;
}
}
}