1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| PROCEDURE calcul_crc(la_chaine est une chaîne)
i,l,crc sont des entiers sans signe sur 2 octet
j,k est un entier sans signe sur 1 octet
crc_haut, crc_bas sont des entiers sans signe sur 1 octet
temp,c est une chaîne
temp=la_chaine
i=Taille(la_chaine)
crc=0
TANTQUE i<> 0
j=Asc(Gauche(temp,1))
l=0
TANTQUE l < 8
k=ETBinaire(OUExclusifBinaire(j,crc),1)
crc=crc/2
SI k <> 0 ALORS
crc=OUExclusifBinaire(crc,0xA001)
FIN
j=j/2
l=l+1
FIN
i--
temp=Droite(temp,Taille(temp)-1)
FIN
crc_haut=ETBinaire(crc,0xFF00)/0x0100
crc_bas=ETBinaire(crc,0x00FF)
SI crc_haut=0x1A OU crc_haut=0x1B OU crc_haut=8 ALORS
crc_haut=0x99
FIN
SI crc_bas=0x1A OU crc_bas=0x1B OU crc_bas=8 ALORS
crc_bas=0x99
FIN
c=Caract(crc_haut)+Caract(crc_bas)
RENVOYER c |
Partager