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 :

problème de tableau


Sujet :

C

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut problème de tableau
    Bonjour,

    j'utilise un tableau que je remplie de '0' et de '1'. Je veux changer les '0' en '1' et les '1' en '0'.

    voila le programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     unsigned char tempo[24];
    ......
    for(i=0;i<24;i++)
    		{	
    			if(tempo[i]='0')
    			  { tempo[i]=1;
    			  }
    			else
    			  { tempo[i]=0;
    			  }
     
     
    			printf("%d",tempo[i]);
    		}
    Au départ j'ai la séquence suivante: 011010000011111010010110

    A la fin j'ai que des 1 : 111111111111111111111111


    Pouvez-vous m'aider? Merci.

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    - Attention, tu mélanges la définition d'un caractère '0' et la valeur 0. Ce ne sont pas les mêmes choses.
    - Attention, le test d'égalité en C est un double ==

    Donc ton code devrait être :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    unsigned char tempo[24];
    ......
    for(i=0;i<24;i++)
    		{	
    			if(tempo[i]=='0')
    			  {
                              tempo[i]='1';
    			  }
    			else
    			  { 
                              tempo[i]='0';
    			  }
     
     
    			printf("%c",tempo[i]);
    		}
    Jc

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 168
    Par défaut
    Bonjour,

    c'est une comparaison :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (tempo[i] == '0') 
    ___________________________________________________


    tu affecte un caracatère

    ___________________________________________________

    tu affecte un caracatère

    ___________________________________________________

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("%d",tempo[i]);
    tu dois afficher en %c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    printf("%c",tempo[i]);
    ____________________________________________________

    bon courage,

    turbo_chess

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    comment je peux faire après pour aditionner ces bits avec 1?

  5. #5
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par sandball22
    comment je peux faire après pour aditionner ces bits avec 1?
    Je ne comprends pas bien ta question?

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    En fait, mon tableau tempo contient des bits '0' et '1'. je voudrais addittionner ces bits avec la valeur '1'. En fait , il s'agit d'un complément à 2. Mais j'ai déjà essayé avec ~tempo[i@ + 1 mais cela affiche n'importe quoi.

  7. #7
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par sandball22
    En fait, mon tableau tempo contient des bits '0' et '1'. je voudrais addittionner ces bits avec la valeur '1'. En fait , il s'agit d'un complément à 2. Mais j'ai déjà essayé avec ~tempo[i@ + 1 mais cela affiche n'importe quoi.
    Même si des bits (8 bits en règle générale) se cachent derrière, votre tableau contient des caractères ('0' et '1' ne sont pas des bits).

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    comment fau-il faire alors?

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 87
    Par défaut
    ce qu'on veut dire c'est que ton tableau est un tableau de char.
    Un char est codé sur un octet soit 8 bits.
    Le fait de mettre '1' ou '0' ne va pas te faire travailler avec des bits.

  10. #10
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par sandball22
    comment fau-il faire alors?
    Pourriez-vous être plus précis sur votre objectif?

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    j'ai un tableau de caractères qui corespond à des bits. Je voudrais faire un complément à 2 sur les bits de mon tableau.
    Or il s'agit de caractères.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    peut-on récupérer tous les valeurs du tableau dans une variable?
    Par exemple mon tableau contient 1 0 1 0 1 0 1.

    Peut-on faire int recup=1010101 et après faire un complément à 2?

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 87
    Par défaut
    tu peux toujours transformer ta chaine en int avec atof()

  14. #14
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par sandball22
    peut-on récupérer tous les valeurs du tableau dans une variable?
    Par exemple mon tableau contient 1 0 1 0 1 0 1.

    Peut-on faire int recup=1010101 et après faire un complément à 2?
    Cela dépend du nombre d'éléments dans votre tableau. Avec une taille de 24 et un compilateur générant du code 32 bits, pas de problème.
    Ce sera juste un peu plus compliqué que:

  15. #15
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par sandball22
    peut-on récupérer tous les valeurs du tableau dans une variable?
    Par exemple mon tableau contient 1 0 1 0 1 0 1.

    Peut-on faire int recup=1010101 et après faire un complément à 2?
    Il est relativement aisé d'écrire une fonction qui convertit la représentation binaire contenue dans ta chaîne de caractère en un entier non signé. Ensuite, tu pourras faire dessus toutes les opérations bit-à-bit que tu désires, puis enfin, convertir en retour ton entier non signé en une représentation binaire sous forme chaîne de caractères.

    Pose des questions si tu ne vois pas comment faire.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    J'ai changé de type de mon tableau.

    Je me trouve avec un tableua d'entier, où l'on trouve que des '0' et des '1'.

    je voudrais faire un complément à 2.

    j'arrive à cela jusqu'à présent:
    départ : 1 0 1 1 0 1
    1ere étape: 0 1 0 0 1 0

    Il me reste à faire le +1.

    Comment fait-on? je pensais faire récupérer le contenu de mon tableau dans une variable int. C'est à dire recup=010010 et faire +1 dans une base 2. Peut-on réaliser cela?

    Merci.

  17. #17
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    On peut éventuellement travailler sur le tableau de char.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    char tempo[24];
     
    void complement2(char *tab,int size)
    /*Ce code suppose que tab[0] correspond au bit de poids faible*/
     {
     int i;
     
     /*On inverse les "bits"*/
     for (i=0;i<size;++i) tab[i]=tab[i]=='0'?'1':'0';
     /*"On ajoute 1"*/
     for (i=0;i<size;++i)
      if (tab[i]=='1') tab[i]='0';
      else
       {
       tab[i]='1';
       break;
       }
     }
    edit: Ce code n'est pas très optimisé, mais bon, c'est pour l'exemple.

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    ou est-ce que tu rajoute 1 dans le code précédent? Car a part changer les bits 1 en 0 et vis versa, je ne vois pas ou est l'addition.

  19. #19
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 87
    Par défaut
    Bin ce qu'il t'a montré c'est le principe de base !

    Aprés pour mettre de faire une addition c'est un algo que tu dois mettre en place.

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    Justement je ne vois pas trop comment faire l'diition en base 2. Si quelqu'un pouvait m'aider?

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Débutant en Javascript : problème de tableau !
    Par bluheim dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/11/2005, 15h03
  2. [XHTML] problème de tableau
    Par virgul dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 28/04/2005, 07h18
  3. Problème de tableau
    Par tom06440 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 26/04/2005, 20h30
  4. Problème de tableau
    Par krfa1 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 08/02/2005, 11h09

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