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 :

256 passages dans une boucle 8 bit


Sujet :

C

  1. #1
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 959
    Points : 2 088
    Points
    2 088
    Par défaut 256 passages dans une boucle 8 bit
    Bonjour,

    J'ai besoin de faire une boucle du même genre que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    U8 u8i;
    for (u8i=0;u8i<0xff;u8i++){
    //faireqqchose 255 fois;
    }
    Mais il faudrait que je passe 256 fois dans la boucle !!
    Ne me dites pas d'utiliser un 16bit puisque le but de ma boucle est justement de décomposer une boucle lourde et lente 32 bit en une cascade de boucles rapides sur 8 bit... (c'est pour une programamtion sur microcontroleur 8 bit...)

    Merci par avance pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: 256 passages dans une boucle 8 bit
    Citation Envoyé par petitours
    J'ai besoin de faire une boucle du même genre que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    U8 u8i;
    for (u8i=0;u8i<0xff;u8i++){
    //faireqqchose 255 fois;
    Le problème, c'est que la, ça va faire 254 fois...
    Pour 255, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (u8i=0;u8i<=0xff;u8i++){
    Mais il faudrait que je passe 256 fois dans la boucle !!
    Avec un compteur sur 8 bits, c'est pas évident..., mais c'est faisable :
    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
    19
    20
     
    #include <stdio.h>
     
    int main (void)
    {
       /* pour verifier */
       int count = 0;
     
       unsigned char c = 0;
     
       do
       {
          count++;
          c++;
       }
       while ((c & 0xFF) != 0);
     
       printf ("count = %d, c = %d\n", count, c);
       return 0;
    }

  3. #3
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 339
    Points : 130 357
    Points
    130 357
    Billets dans le blog
    1
    Par défaut
    Emmanuel tu es sûr de ne pas avoir oublié la réponse ? (je vois que tu as corrigé)

    Si tu travailles avec des entiers 8 bits non signé je verrais la solution ainsi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    U8 u8i = 0;
     
    do {
      /* faire ton truc 256 fois */
     
      u8i++;
    } while (u8i != 0);
    Je tire parti du fait que ton entier revient à 0 après avoir atteint la valeur 0xff.

  4. #4
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    677
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 677
    Points : 638
    Points
    638
    Par défaut
    peut-être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    u8i = 0;
    do {
    /* faire qqche 256 fois */
    }while (u8i++<0xff);

  5. #5
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    u8i = 0; 
    do { 
    /* faire qqche 256 fois */ 
    }while (u8i++<0xff);
    Le principe reste le même que anomaly, mais cependant la condition de boucle est plus austère.

  6. #6
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 959
    Points : 2 088
    Points
    2 088
    Par défaut
    super, merci à tous !

    c'était tellement simple que je ne devais pas pouvoir trouver je suppose

    J'ai tourné mon truc dans tous les sens hier alors que c'était si simple de faire simple

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécution d'une instruction à chaque passage dans une boucle
    Par monichou86 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/11/2009, 20h47
  2. Passage dans une boucle incoherent
    Par titou_777 dans le forum Langage
    Réponses: 2
    Dernier message: 02/03/2009, 16h02
  3. [Smarty] Forcer le nombre de passage dans une boucle
    Par arnogb69 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/05/2008, 15h15
  4. [VBA]Problème de passage dans une boucle
    Par Halima91 dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/03/2007, 04h09
  5. probleme de passage dans une boucle
    Par EssaiEncore dans le forum ASP
    Réponses: 16
    Dernier message: 15/02/2005, 17h39

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