Votre question

aide langage c fonction le retour

Tags :
  • Algorithme
  • Programmation
Dernière réponse : dans Programmation
8 Février 2005 20:02:17

salut

mon objectif est d'écrire une fonction qui calcule la parité longitudinale d'un flot de bits. Dans une machine cette opération est réalisée par un circuit (un registre à décalage de 8 bits et une porte "ou exclusif").


L'algorithme de calcul est le suivant :
bits_registre initialisés =0;
POUR chaque bit de la suite binaire
DÉCALAGE du registre dans le sens poids fort poids faible;
le bit entrant registre (poids faible) = bit en entrée OU EXCLUSIF le bit en sorti (poids fort);

je souhaite écrire la fonction char LRC ( char * suite, int nbBits), suite étant un pointeur en mémoire sur un flot de bits, et nbBits le nombre de bits de la suite binaire. Le résultat de la fonction étant l'octet représentant la parité longitudinale de la suite.

Pourriez vous m'aidez je galere ?

Autres pages sur : aide langage fonction retour

8 Février 2005 20:13:17

Tu pourras t'inspirer du code suivant ;-)

CRC
8 Février 2005 20:29:10

voili ce ke sa donnerai sa marche sa ?

unsigned char LRC (suite,nbBits)

unsigned char *suite; <<<<< la suite
unsigned int nbBits; <<<<<<< nombre de bits de la suite binaire

{
unsigned char LRC = 0;
while (nbBits--)
LRC += *suite++;

return ((unsigned char)(-((char LRC)));
}
Contenus similaires
8 Février 2005 20:37:38

Il manque une petite parenthèse pour le cast en char de LRC, mais sinon ca à l'air d'être ca ...

Enfin c'est la copie conforme du code dont je t'ai mis le lien, reste à savoir si c'est ce que tu cherchais :-D
8 Février 2005 20:58:10

unsigned char LRC (suite,nbBits)
{
unsigned char *suite; <<<<< la suite
unsigned int nbBits; <<<<<<< nombre de bits de la suite binaire


unsigned char LRC = 0;
while (nbBits--)
LRC += *suite++;

return ((unsigned char)(-((char LRC)));
}


c'est correcte comme sa ?
8 Février 2005 21:24:48

  1. unsigned char LRC (suite,nbBits)
  2. unsigned char *suite; /* la suite */
  3. unsigned int nbBits; /* nombre de bits de la suite binaire */
  4. {
  5. unsigned char LRC = 0;
  6. while (nbBits--) LRC += *suite++;
  7. return ((unsigned char)(-((char)LRC)));
  8. }


Mais bon je sais pas si c'est exactement le LRC que tu cherches ... Car ici nbBits, c'est plutot nbBytes !
8 Février 2005 21:30:23

aurais tu une solution a me soumettre ?
8 Février 2005 21:45:51

pour ces 2 lignes ya moyen de faire autrement:

while (nbBits--)
LRC += *suite++;


Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS