Mais um código para calculo de CRC.

Segue o código:

[sections] [section title=”Código Fonte C#”]

private const Int16 CRC_GEN_CCITT = 0x1021;
Int16 Calcula_CRC_Normal(string tst)
{
char[] tst2 = tst.ToArray();
int cont = 0;
Int16 crc = 0;
do
{
crc ^= (short)(((short)tst2[cont]) << 8);
for (int i = 0; i < 8; i++)
{
if ((crc & 0x8000) == 0x8000)
crc = (short) ((crc << 1) ^ CRC_GEN_CCITT);
else
crc <<= 1;
}
} while (++cont < tst2.Length);
return crc;
}

Alterando a constante CRC_GEN_CCITT é possível calcular outras formas de CRC, não só a CCITT.

[/section] [/sections]
Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[C#] Rotina para Calculo de CRC
Tags:                     

Deixe uma resposta

%d blogueiros gostam disto: