Calcul de parité et de checksum [Résolu]

Messages postés
458
Date d'inscription
jeudi 4 décembre 2003
Dernière intervention
19 décembre 2008
- - Dernière réponse : julienbj
Messages postés
458
Date d'inscription
jeudi 4 décembre 2003
Dernière intervention
19 décembre 2008
- 28 janv. 2006 à 01:10
Pour un programme embarqué, je dois calculer la parité des 7 bits de poids faibles d'un octet. Je viens ici demander des conseils. Je ne vois qu'une seule solution pour calculer cette parité, mais le calcul revenant souvent, il faut qu'il soit fait de façon ptimal. Pour moi, il faut que je prennes les bits de mon octet un a un et que je fasse un xor avec mon bit de parité, mais n'y a-t-il pas plus rapide?

Je vais poser la même question quand au checksum, la seule différence étant qu'il doit s'effectuer sur 13 bits et que la taille du résultat du checksum eest sur 3 bits.

Si jamais vous pensez à qqch qui permettrait d'éviter les boucles pour effectuer ces calculs...

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
22 août 2010
3
Merci
Pour la parité, un table précalculée sera plus rapide, elle prendra 128 octets, mais tu n'aura qu'a faire if(table[x]) {paire} else {impaire}

Merci vecchio56 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de vecchio56
Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Dernière intervention
20 janvier 2013
0
Merci
Salut !

Pour calculer la parite :

char mask = 0x01;
char i = 0;
char parite = 0;
while(i < 7)
{
//On compte le nombre de 1
if(Octet & (mask << i))
parite++;
i++;
}
if(parite & 1)
//Impaire
else
//Paire

Pour le checksum, je connai pas l'algo du celui-ci, j'me suis pas renseigner, vu que j'utilise generalement un CRC.
Commenter la réponse de ctx_man
Messages postés
458
Date d'inscription
jeudi 4 décembre 2003
Dernière intervention
19 décembre 2008
0
Merci
ctx_man >> Trop long comme méthode.

vecchio >> Pas bete du tout, et la niveau rapidité, ben on peut pas faire mieux

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Commenter la réponse de julienbj

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.