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 :

Rotation de 4 bits


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 22
    Points : 10
    Points
    10
    Par défaut Rotation de 4 bits
    Bonjour à tous,

    Voilà j'ai un petit soucis dans mon code.
    Dans l'éxecution de mon programme (en C) je dois effectuer une rotation
    par quartets d'une chaine de caractères.
    Voilà l'exemple :
    1er carac 2eme carac 3eme carac
    aaaa bbbb | cccc dddd | eeee ffff

    Une fois la rotation effectuée la chaine à cette tête là :
    1er carac 2eme carac 3eme carac
    ffff aaaa | bbbb cccc | dddd eeee

    et là j'avoue que je sêche un peu... auriez vous quelques idées ?

    Merci beaucoup
    Romain

  2. #2
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    Citation Envoyé par ozyamdias
    Bonjour à tous,

    Voilà j'ai un petit soucis dans mon code.
    Dans l'éxecution de mon programme (en C) je dois effectuer une rotation
    par quartets d'une chaine de caractères.
    Voilà l'exemple :
    1er carac 2eme carac 3eme carac
    aaaa bbbb | cccc dddd | eeee ffff

    Une fois la rotation effectuée la chaine à cette tête là :
    1er carac 2eme carac 3eme carac
    ffff aaaa | bbbb cccc | dddd eeee

    et là j'avoue que je sêche un peu... auriez vous quelques idées ?

    Merci beaucoup
    Romain
    bourrin: x= (20<<x)+((4<<x)>>8)
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Nemerle
    bourrin: x= (20<<x)+((4<<x)>>8)
    Merci de ta réponse,
    mais je dois dire que je ne comprend pas beaucoup
    x correspond au caractère courant ? et les nombres 20, 4 et 8...

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Nemerle
    bourrin: x= (20<<x)+((4<<x)>>8)
    20<<X

    ca serait pas plutot x<<20 ??
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par pseudocode
    20<<X

    ca serait pas plutot x<<20 ??
    Oui voila je ne comprend pas bien, et d'ailleurs pourquoi 20 ?
    (l'algo à toujours été ma faiblesse en programmation )

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 943
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 943
    Points : 5 655
    Points
    5 655
    Par défaut
    Jia,

    Là, j'ai un sérieux doute sur toutes les réponses.

    En effet
    Citation Envoyé par ozyamdias
    Dans l'éxecution de mon programme (en C) je dois effectuer une rotation par quartets d'une chaine de caractères.
    Et si on peut faire la rotation d'une chaîne de caractères comme le font toutes les réponses, alors je suis probablement le pape.

    Mais bon, d'un autre côté le titre du sujet
    Citation Envoyé par ozyamdias
    Rotation de 4 bits
    ne correspond pas a priori à un décalage d'une chaîne.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 33
    Points
    33
    Par défaut
    Si je comprends bien on a 3 char (x,y,z).

    Dans ce cas, j'utiliserai des masques et faire l'ensemble doucement pas à pas

    par exemple le "aaaa" de ton exemple correspond aux 4 bits de poids forts du premier char donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char aaaa = (0xf0 & x) >> 4;
    tu peux faire le reste de la même manière...

    ensuite tu reconstruit tes char, le premier char x deviendra par exemple :

  8. #8
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    Citation Envoyé par pseudocode
    20<<X

    ca serait pas plutot x<<20 ??
    oui, (20<<x)+((4<<x)>>8) est déconnant, zut j'ai écris trop vite!

    Son objet est représenté par 24 bits:

    décalage à gauche de x de 20 bits: (20<<x) donne ffff 0000 ... 0000
    puis on reprend x:
    décalage de x à droite de 4 bits: 0000 aaaa ... eeee

    Et on additionne le tout: (20<<x)+(x>>4)
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

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

Discussions similaires

  1. [Binaire] Opérateurs de rotation dee bits ?
    Par Tifauv' dans le forum C
    Réponses: 3
    Dernier message: 09/11/2017, 11h29
  2. Comment faire une rotation des bits vers la droite ?
    Par Jean-Marc.Bourguet dans le forum Télécharger
    Réponses: 0
    Dernier message: 30/11/2010, 17h12
  3. Rotation de bits d'un char.
    Par fred61 dans le forum Débuter
    Réponses: 5
    Dernier message: 07/08/2009, 15h17
  4. [Free Pascal] Rotation de bits
    Par bubulemaster dans le forum Free Pascal
    Réponses: 2
    Dernier message: 26/12/2007, 13h56
  5. rotation de bits
    Par pierabobl dans le forum C
    Réponses: 29
    Dernier message: 12/07/2006, 11h17

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