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

julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 27 janv. 2006 à 21:25 - Dernière réponse : julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention
- 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
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 28 janv. 2006 à 00:40
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de vecchio56
ctx_man 285 Messages postés mardi 28 décembre 2004Date d'inscription 20 janvier 2013 Dernière intervention - 27 janv. 2006 à 23:44
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
julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 28 janv. 2006 à 01:10
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.