Calcul de CRC

pizza6 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Ravachol Messages postés 566 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un petit soucis dans mon calcul de CRC-32
Pour coder un message avec l'algorithme du CRC, il faut au départ un message codé en binaire type : "10010010100010000"
Cependant, je ne sais pas comment on obtient ce type de message à partir d'une chaine de caractère type : " e" ou "abc"
Si quelqu'un peut m'aider!
Merci
Julien Mellano.
A voir également:

4 réponses

sebsauvage Messages postés 32893 Date d'inscription   Statut Modérateur Dernière intervention   15 662
 
Il suffit de prendre la valeur en binaire du code ASCII de chaque caractère.

http://sebsauvage.net/comprendre/ascii/index.html
0
pizza6 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   3
 
C'est ce que j'ai fait, mais ca ne marche pas!
par exemple pour "e" le code ASCII est 101
je multiplie ce nombre par 2^32 pour fair le décalage et ensuite je prend le reste de la division de ce nombre par mon polynome generateur.
J'obtiens pas du tout le bon nombre!!
0
pi€rre Messages postés 76 Date d'inscription   Statut Membre Dernière intervention  
 
pour faire passer ton entier X en binaire tu peux faire:
X diviser par 2, le reste de la division est le dernier bit, et tu recommence avec le resultat de la division :
10/2
il reste0
le resultat: 5
5/2
il reste 1
le resultat : 2
2/2
il reste 0
resultat 1
1/2
il rest 1
resultat 0
donc 10 correspond a 1010



La vie est belle et c'est tant mieux
0
Ravachol Messages postés 566 Date d'inscription   Statut Membre Dernière intervention   120
 
Salut,
j'ai codé ceci il y a quelque temps en Delphi (langage Pascal)
Tu devrais pouvoir aisément l'adapter à un autre langage

function DecBin(Valeur : int64):String;
var
	i: byte;
begin
	Result:='';
	for i:=31 downto 0 do
		Result:=Result+IntToStr(Ord(Valeur and(1 shl i)=1 shl i));
end;


A++

La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
0