Salut!
Pour faire la conversion d'un nombre hexadecimal en binaire comment procède-t-on ?
Salut!
Pour faire la conversion d'un nombre hexadecimal en binaire comment procède-t-on ?
Lai,
Changer de base est une opération assez simple, en voici une explication basique que je pense être assez claire.
Avant de te lancer dans l'encodage, fais quelques conversions "à la main" pour bien assimiler le principe, et le programme devrait s'écrire presque tout seul
N'hésite pas à poser des questions
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134 Calcul dans différentes bases Conventions Dans tout ce document, on va utiliser les notations suivantes: Le symbole ^ signifie 'élever à la puissance' par exemple 10^3 signifie 'élever 10 à la puissance 3' c'est à dire 10*10*10 = 1000 Un nombre suivi par #B est écrit en base 2 (B pour binaire) #H est écrit en base 16 (H pour Hexadécimal) sans précision, il est écrit en base 10 Le symbole * signifie 'multiplier' Dans les calculs, pour les divisions : Q signifie Quotient R signifie Reste Rappel : Tout nombre élevé à la puissance 0 (zéro) vaut 1 (10^0 = 2^0 = 16^0 = 1) Quand nous écrivons un nombre, par exemple 573, cela signifie qu'il est égal à la somme: 3 * 10^0 = 3*1 = 3 + 7 * 10^1 = 7*10 = 70 + 5 * 10^2 = 5*100 = 500 ----- 573 On peut transcrire cela dans une autre base, par exemple en base 2 On ne disposera alors que de 2 symboles, 0 et 1. Les chiffres en partant de la DROITE signifieront : 0 ou 1 * 2^0 2^1 2^2 2^3 etc... Soit le nombre 1000111101#B, calculons sa valeur en base 10 1 * 2^0 = 1 + 0 * 2^1 = 0 + 1 * 2^2 = 4 + 1 * 2^3 = 8 + 1 * 2^4 = 16 + 1 * 2^5 = 32 + 0 * 2^6 = 0 + 0 * 2^7 = 0 + 0 * 2^8 = 0 + 1 * 2^9 = 512 ----- 573 On peut utiliser une autre base, 16. Il nous faut alors 16 symboles pour représenter les différents 'chiffres'. Par convention, on a choisi d'utiliser 0 à 9, puis A à F A vaut donc 10 (décimal) B = 11 C = 12 D = 13 E = 14 F = 15 Avec le même principe que pour la base 2, voyons le nombre 23D#H D * 16^0 = 13 + 3 * 16^1 = 48 + 2 * 16^2 = 512 ----- 573 Le passage d'une base quelconque en base 10 est donc très simple. Voyons maintenant comment passer de la base 10 à une autre, exemple en base 16. La technique suivante permet de trouver les chiffres successifs en partant de la DROITE. soit le nombre 573. Divisons le par la base destination, soit 16 573 / 16 = 35(Q) + 13(R) le reste = 13 = D#H est le premier chiffre à droite de la valeur cherchée répétons le calcul avec le quotient du calcul précédent (35) 35 / 16 = 2(Q) + 3(R) le reste = 3 = 3#H est le deuxième chiffre en partant de la droite et encore une fois : 2 / 16 = 0(Q) + 2(R) le reste = 2 = 2#H est le troisième chiffre en partant de la droite Comme le quotient = 0, on peut arrêter. Le nombre 573 s'écrit donc 23D#H En supprimant les commentaires, on obtient une disposition claire: (Q) (R) (R en base 16) 573 / 16 = 35 + 13 D 35 / 16 = 2 + 3 3 2 / 16 = 0 + 2 2 On lit les restes de bas en haut = 23D#H Refaisons le calcul pour écrire 573 en base 2 (Q) (R) 573 / 2 = 286 + 1 286 / 2 = 143 + 0 143 / 2 = 71 + 1 71 / 2 = 35 + 1 35 / 2 = 17 + 1 17 / 2 = 8 + 1 8 / 2 = 4 + 0 4 / 2 = 2 + 0 2 / 2 = 1 + 0 1 / 2 = 0 + 1 terminé puisque le quotient = 0 et donc en lisant les restes de bas en haut, la valeur est 1000111101#B Voilà, j'espère que c'est assez clair.
Merci j'ai compris, tu as certainement selectionné l'une des explications les plus claires.
J'espère avoir assimilé parce que je ne suis pas très en forme. Demain j'ai un contrôle dessus.
@+
Hi,
Bonne chance
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager