Ecrire l'algorithme du calcul du crc16 en vb6

Signaler
Messages postés
10
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
28 octobre 2011
-
Messages postés
10
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
28 octobre 2011
-
Salut @tous, j'aimerais que quelqu'un puisse me traduire c'est algorithme du calcul de crc16 écrit en c# en vb6. J'ai essayé des convertisseurs mais j'ai toujours beaucoup d'erreurs. Je ne programme pas en vb6 mais il est vraiment utile pour moi de trouver ce code en vb6. merci.
/// <summary>
/// This is the used CRC-Algorithem.
/// This is the CCITT CRC 16 polynomial X^16 + X^12 + X^5 + 1.
/// This works out to be 0x1021, but the way the algorithm works
/// lets us use 0x8408 (the reverse of the bit pattern). The high
/// bit is always assumed to be set, thus we only use 16 bits to
/// represent the 17 bit value.
/// </summary>
///


/// <returns></returns>
public static ushort crc16
(
byte[] data
)
{
int length = data.Length;
byte i;
ushort ptr = 0;
ushort value;
ushort crc = 0xffff;
const ushort POLY = 0x8408;

if (length == 0)
{
crc = (ushort)(~(int)crc);
}
else
{
do
{
for (i 0, value data[ptr++]; i < 8; i++, value >>= 1)
{
if (((ushort)(crc & 0x0001) ^ (ushort)(value & 0x0001)) != 0)
crc = (ushort)((crc >> 1) ^ POLY);
else
crc >>= 1;
}
}
while (--length != 0);

uint temp = (~(uint)crc);
crc = (ushort)(temp & 0xffff);
value = crc;
crc &= 0x00ff;
crc = (ushort)((crc << 8) | ((value >> 8) & 0xff));
}

return crc;
}
merci @ tous.
philippe meilo
A voir également:

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
As-tu tapé "crc16" dans la recherche de codes sauf .Net du site ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
10
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
28 octobre 2011

Salut jack,
j'ai bien tapé ce crc16 dans recherche et j'ai mème essayé l' exemple proposé mais le resultat que je trouve avec cet algorithme est bien different de ce que j'attends. Ce que j'attends est par contre le mème que ce que je trouve en c#.

philippe meilo