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

Tcl/Tk Discussion :

Conversion Hexa => binaire => décimal


Sujet :

Tcl/Tk

  1. #1
    Membre du Club Avatar de Matmal11
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 111
    Points : 50
    Points
    50
    Par défaut Conversion Hexa => binaire => décimal
    Bonjour,

    Je souhaite convertir un nombre hexa en binaire, et découper le contenu pour récupérer les différentes valeurs de bit, puis les convertir en décimal.


    Ex: J'ai la valeur hexa 0xA3 => 1010 0011
    je voudrais récupérer la valeur du premier bit, des 3 suivants, encore 3 et enfin le dernier bit.
    Il me faudrait donc récupérer 4 valeurs: 1, 2, 1, 1

    Savez-vous comment faire?
    Merci par avance
    Mathias

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 29
    Points : 44
    Points
    44
    Par défaut Conversion Hexa => binaire => décimal
    Voici une possibilité pour isoler les différentes valeurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    set a 0xA3
    set v1 [expr ($a & 0x80) / 0x80]
    set v2 [expr ($a & 0x70) / 0x10]
    set v3 [expr ($a & 0x0E) / 0x02]
    set v4 [expr $a & 0x01]
    On obtient ainsi les 4 valeurs v1, v2, v3 et v4.
    En espérant avoir répondu à la question, sincères salutations.

  3. #3
    Membre du Club Avatar de Matmal11
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    Merci, ca marche très bien.
    Je comprend le masque avec l'opération &
    Par contre, la division sert à quoi exactement???

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 29
    Points : 44
    Points
    44
    Par défaut Conversion Hexa => binaire => decimal
    "Par contre, la division sert à quoi exactement???"
    Si on ne fait pas de divisions, on obtient les valeurs suivantes:
    v1 = 128; v2 = 32; v3 = 2; v4 = 1.
    Vous souhaitiez v1 = 1, v2 = 2, v3 = 1 et v4 = 1.

    Par ailleurs, selon le titre du post, vous souhaitez convertir une valeur de hexa vers binaire puis vers décimale. On peut utiliser une autre méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set a 0xA3
    set b [format "%d" $a]
    La valeur de b est en décimal. Hélas cela ne fonctionne pas pour une conversion hexa vers binaire. Il faut utiliser une autre méthode.
    Voila, j'espère avoir apporté une petite pierre à l'édifice de vos connaissances.

    Salutations.

  5. #5
    Membre du Club Avatar de Matmal11
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    En fait la division permet de supprimer les bits de droite.
    Pour la deuxième partie de ta réponse, la conversion doit se passer en 2 temps car je dois récupérer seulement une certaine partie de mon nombre Hexa.
    L'objectif est de convertir un nombre Hexa en binaire, choisir certains bit et convertir la valeur binaire sélectionnée en décimal.
    L'intégralité de mon nombre ne m'intéresse pas, il renferme plusieurs infos, et il me faut les récupérer indépendamment!

    Merci
    @++

  6. #6
    Membre du Club Avatar de Matmal11
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    J'ajouterai sur le mécanisme de la division, qu'elle supprime tous les bit à droite du Msb de la valeur par laquelle on divise.

    Je reprend mon ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    set a 0xFF
     
    set v2 [expr ($a & 0x70) / 0x10]
    v2 = 7
     
    set v2 [expr ($a & 0x70) / 0x20]
    v2 = 3
     
    set v2 [expr ($a & 0x70) / 0x30]
    v2 = 3 (Msb identique à 0x20!)
    Voilà, c'est comme ca que je l'ai compris!
    Bon codage à tous
    Mat

  7. #7
    Invité
    Invité(e)
    Par défaut
    Une autre méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    proc hex2bin {hex} {
        set t {
             0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111
             8 1000 9 1001 a 1010 b 1011 c 1100 d 1101 e 1110 f 1111
        }
        regsub {^0[xX]} $hex {} hex
        return [string map -nocase $t $hex]
    }
    % hex2bin 0xA3
    10100011

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

Discussions similaires

  1. Conversion d'un nombre binaire en décimal
    Par grungy-soul dans le forum Général Java
    Réponses: 7
    Dernier message: 28/05/2008, 10h23
  2. Conversion Hexa -> décimal
    Par Nemesis007 dans le forum C
    Réponses: 3
    Dernier message: 30/04/2007, 16h51
  3. [Debutant] Conversion Hexa en Binaire
    Par radskin dans le forum C
    Réponses: 6
    Dernier message: 11/09/2006, 11h24
  4. Réponses: 4
    Dernier message: 21/12/2005, 13h20
  5. conversion hexa-binaire
    Par jack69 dans le forum C
    Réponses: 8
    Dernier message: 04/04/2005, 17h33

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