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

Algorithmes et structures de données Discussion :

renversement de bits


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2003
    Messages : 192
    Par défaut renversement de bits
    Bonjour,

    j'aimerais, sans trop savoir comment, faire cette opération
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    decimal          Base 2             fraction base 2           decimal
    1         ----->      1   ----->             0.1      ----->  1/2=0.5
    2                    10                      0.01             1/4=0.25
    3                    11                      0.11             3/4=0.75
    4                   100                      0.101            5/8=0.125
    c'est à dire prendre un entier i, le mettre en base 2 puis en faire une symétrie miroir et en faire une fraction pour retraduire en décimal

    Existe-il en C une façon claire et rapide de faire cette opération ?

    Merci

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Heimdall Voir le message
    Bonjour,

    j'aimerais, sans trop savoir comment, faire cette opération
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    decimal          Base 2             fraction base 2           decimal
    1         ----->      1   ----->             0.1      ----->  1/2=0.5
    2                    10                      0.01             1/4=0.25
    3                    11                      0.11             3/4=0.75
    4                   100                      0.101            5/8=0.125
    c'est à dire prendre un entier i, le mettre en base 2 puis en faire une symétrie miroir et en faire une fraction pour retraduire en décimal

    Existe-il en C une façon claire et rapide de faire cette opération ?

    Merci
    J'avoue ne pas comprendre du tout ce que tu veux faire. Es-tu conscient que la représentation interne des données est le binaire ?

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Heimdall Voir le message
    Existe-il en C une façon claire et rapide de faire cette opération?
    Je ne vois rien de plus simple que (non teste, pas meme compile et je suis certain que ca ne fonctionne pas aux limites):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    double heimdall(unsigned n)
    {
       unsigned denom = 1;
       unsigned num = 0;
       if (n == 0)
          return 0.0;
       while (n != 0) {
          denom <<= 1;
          num = (num << 1) | (n &1);
          n >>= 1;
       }
       denom >>= 1;
       return (double)denom / (double) num;
    }

  4. #4
    Membre confirmé
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2003
    Messages : 192
    Par défaut
    Salut,

    je suis pas trop sûr de bien comprendre ta fonction Jean Marc, en revanche je pense qu'il faut à présent que je précise quelque chose.

    J'aimerais faire cette opération en base b.

    b=2 et 3.

    en base 3 ça donnerait :

    3-->10-->01-->0.010-->1/9

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 971
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 971
    Par défaut
    Die,
    Citation Envoyé par Heimdall Voir le message
    Bonjour,

    j'aimerais, sans trop savoir comment, faire cette opération
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    decimal          Base 2             fraction base 2           decimal
    1         ----->      1   ----->             0.1      ----->  1/2=0.5
    2                    10                      0.01             1/4=0.25
    3                    11                      0.11             3/4=0.75
    4                   100                      0.101            5/8=0.125
    c'est à dire prendre un entier i, le mettre en base 2 puis en faire une symétrie miroir et en faire une fraction pour retraduire en décimal

    Existe-il en C une façon claire et rapide de faire cette opération ?

    Merci
    J'avoue ne pas trop comprendre non plus.

    Par exemple, tu parles de symétrie, mais où est-elle dans un de tes exemples (qui est faux, d'ailleurs) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    decimal          Base 2             fraction base 2           decimal
    ...
    4                   100                      0.101            5/8=0.125
    par référence aux autres exemples, je verrais plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    decimal          Base 2             fraction base 2           decimal
    ...
    4                   100                      0.001            1/8=0.125
    ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2003
    Messages : 192
    Par défaut
    Oui Droggo, c'est bien ça, je m'étais trompé avec :

    5 --> 101-->101--->0.101--->5/8

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 309
    Par défaut
    Tu peux nous dire quel est ton véritable but ? Parce que demander les moyens sans définir la fin c'est peine perdue... J'ai peur que tu ne fasses fausse route...

  8. #8
    Membre confirmé
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2003
    Messages : 192
    Par défaut
    Bonsoir,

    Citation Envoyé par PsychoH13 Voir le message
    Tu peux nous dire quel est ton véritable but ? Parce que demander les moyens sans définir la fin c'est peine perdue... J'ai peur que tu ne fasses fausse route...


    page 15, 2.2.3 :
    http://www.uio.no/studier/emner/matn...teriale/ns.pdf

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 309
    Par défaut
    C'est bien beau tout ça, mais quel intérêt pour toi ? Qu'est-ce que tu veux en faire ?

    Les outils donnés par l'informatique de base ne te suffisent pas ? Après tout les ordinateurs ne savent manipuler que des nombres binaires...

Discussions similaires

  1. Comparaison d'un registre 8 bits avec une variable 32 bits
    Par tupperware dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 15/10/2002, 10h25
  2. Main icon (16 bits)
    Par DR dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/09/2002, 08h23
  3. Cherche l'algo crc 16 bits
    Par icepower dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 21/08/2002, 13h27
  4. Debugger 16-32 bits
    Par Mat dans le forum Assembleur
    Réponses: 4
    Dernier message: 28/06/2002, 11h34
  5. Lire 1 bit d'un fichier en C
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 23/05/2002, 18h31

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