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
Conversion Hexa => binaire => décimal
Voici une possibilité pour isoler les différentes valeurs:
Code:
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.
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:
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.