IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Calculer le bit de parité horizontale (LRC)


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut Calculer le bit de parité horizontale (LRC)
    Bonjour ,

    je voulais calculer le LRC( bit de parité horizontale ) d'une chaine de caractère dont je connais pas sa longueur pour ce fait j'ai déclarer une chaine dynamique, j'ai fais ce code mais il m'affiche du n'importe quoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for(pi=0;pi<6;pi++)
    {
        for(ji=0;ji<ln;ji++)
     
        {
            printf ( "Array of String [%d][%d] is = %d \n\n" ,ji, pi,strings[ji][pi]) ;
        }
     
    }
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ln= strlen(string);
    //et
     char **strings = (char **)malloc(sizeof(char*));
    strings[i]=(char *)malloc(8*sizeof(char));
    Merci d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Je ne pourrai pas t'aider sur le calcul du LRC, que je connais pas. Mais...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char **strings = (char **)malloc(sizeof(char*) * nombre_de_chaines );
    strings[i]=(char *)malloc(8*sizeof(char));
    i = ??

    string est un tableau de pointeurs sur char, pas une chaine. La fonction va renvoyer n'importe quoi.
    Cette ligne se trouve où ? Avant les boucles ? Et si les chaines n'ont pas la même longueur ?...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf ( "Array of String [%d][%d] is = %d \n\n" ,ji, pi,strings[ji][pi]) ;
    Il faut intervertir.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut
    bonsoir ,
    en fait g allouer des case mémoire contenant des pointeur (pour le tableau) et un pointeur sur ce pointeur pour pointer sur la 1ere case et chaque case contient 8 caractères(un octet en binaire)
    puisque je connais pas la langueur de la chaine saisie g utilisé strlen

    et strings[i]=(char *)malloc(8*sizeof(char)); c'est pas un tab de ptr non?
    printf est dans les deux boucles

    merci d'avance

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    et strings[i]=(char *)malloc(8*sizeof(char)); c'est pas un tab de ptr non?
    Non, c'est un tableau de 8 char, pas un tableau de pointeurs
    puisque je connais pas la langueur de la chaine saisie g utilisé strlen
    strlen() ne s'applique qu'aux chaines de caractères (donc des tableaux de char terminés par '\0'). string n'est pas une chaine de caractères mais un tableau de pointeurs.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut
    humm je vois, ya pas un moyen(idées peut être) de calculer ce bit comme suit
    exemple
    _____H E L L O LRC
    _Bit 6 1 1 1 1 1 1
    _Bit 5 0 0 0 0 0 0
    _Bit 4 0 0 0 0 0 0
    _Bit 3 1 0 1 1 1 0
    _Bit 2 0 1 1 1 1 0
    _Bit 1 0 0 0 0 1 1
    _Bit 0 0 1 0 0 1 0
    __VRC 0 1 1 1 1 0
    sachant que j'ai réussis à faire la conversion binaire du mot entier et calculer le VRC
    merci pour votre aides

  6. #6
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      char tab[] = "HELLO";
      unsigned char LRC = 0;
      char *p;
      for(p=tab ; *p != '\0' ; p++) LRC ^= *p;

Discussions similaires

  1. [Visual Prolog 7.0] Calculs 64 bits
    Par TontonLuc dans le forum Prolog
    Réponses: 0
    Dernier message: 08/01/2008, 17h48
  2. Calcul d'un CRC 16 bits
    Par pinto_armindo dans le forum Programmation et administration système
    Réponses: 5
    Dernier message: 22/06/2006, 15h35
  3. Améliorer le calcul d'une multiplication (32*32)bits ?
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 36
    Dernier message: 23/03/2006, 11h34
  4. Un programme en assembleur qui indique le bit de parité
    Par bsamah dans le forum Assembleur
    Réponses: 3
    Dernier message: 21/02/2006, 13h32
  5. Calculer la parité paire d'un char
    Par James_ dans le forum C
    Réponses: 15
    Dernier message: 03/09/2003, 23h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo