Traduction d'un programme C en VBA (Algorithme CRC 8 bits)
Bonjour à tous,
Je fais appel à vos connaissances pour traduire un programme en langage C vers du vba.
Certaines fonctions de ce programme me sont inconnues et je peine à le faire fonctionner sous Access.
Le principe est de calculer sur 18 caractères, le crc 8 bits polynôme 0x91, en base 10 (0 -> 255 => 3 chiffres).
Exemple : 300314120242907650 résultat du calcul 048
Voici le code en C:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| const unsigned char CRC7_POLY = 0x91;
unsigned char getCRC(unsigned char message[], unsigned char length)
{
unsigned char i, j, crc = 0;
for (i = 0;i < length; i++)
{
crc ^= message[i];
for (j = 0;j < 8; j++)
{
if (crc & 1)crc ^= CRC7_POLY;
crc >>= 1;
}
}
return crc;
} |
En vba cela pourrait donner cela :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Function CRC (Message as String, Longueur_a_coder as long)
Dim i,j as Long
CRC=0
For i=1 to Longueur_a_coder
CRC=CRC xor Message(i)
For j=1 to 8
if le bit de poids faible de CRC est à 1 then
CRC=CRC xor 0x91 ou exclusif bit à bit
Décaler les bits de CRC de 1 bit à droite // division entière par 2
end if
Next j
Next i
CRC=CRC |
Je n'arrive pas à traduire la partie en italique. Pouvez-vous m'apporter une aide sur ce sujet ?
Merci.