Convertir une base 16 en base 2

Réponses à toutes vos questions du CP à la 3ème
CRPEmaths
Messages: 3
Enregistré le: 04 Oct 2015, 14:24

convertir une base 16 en base 2

par CRPEmaths » 04 Oct 2015, 14:37

Bonjour.

Voilà la question qui me pose problème :
convertir AB8 + FC5 (en base 16) en binaire (exercice inscrit dans un livre concours CRPE)

Le début de la procédure est ok : AB8 + FC5 en base 16 donne après calculs 1A7D en base 16.
C'est la suite que je ne comprends pas :
On dit : il suffit maintenant de le convertir en base 2 : le plus simple est de remplacer chaque chiffre hexadécimal par son écriture en binaire (sur quatre bits chacun) :
1 en base 2 : 0001 (comme 1 est en première position, son écriture binaire s'écrira 1 et non 0001) : là, je tombe dessus par la méthode des divisions successives, mais ensuite cette méthode ne fonctionne pas donc je suppose que ce n'est pas la bonne.
A en base 2 : 1010
7 en base 2 : 0111
D en base 2 : 1101
Donc au final 1A7D en base 16 = 1101001111101 en base 2

Quelqu'un pourrait-il m'expliquer comment on aboutit à cette réponse ?

Merci d'avance



Avatar de l’utilisateur
Lostounet
Admin
Messages: 9665
Enregistré le: 16 Mai 2009, 12:00

par Lostounet » 04 Oct 2015, 16:49

0001 1010 0111 1101 est bien le nombre en base 2.

A = 10 en base 10
D = 13 en base 10

Donc en base 2, tu peux exprimer 10 = 2^3 + 2*1, ce qui fait du [1010]
13 = 2^3 + 2^2 + 2^0 = [1101]

La raison pour laquelle tu écris 4 "bits" au lieu d'un seul, c'est le facteur 2^4:
1A7D signifie en base 10 = 1*16^3 + A*16^2 + 7*16^1 + D
= 1*2^12 + A * 2^8 + 7*2^4 + D

Tu vois bien que chacun est décalé de 4 positions. Le plus grand "bit" possible a pour valeur 15 en base 16, 15 = 2^3 + 2^2 + 2 + 1 qu'on peut organiser sur 4 bits sans problème. Enfin c'est comme ça que je le vois :p
Merci de ne pas m'envoyer de messages privés pour répondre à des questions mathématiques ou pour supprimer votre compte.

CRPEmaths
Messages: 3
Enregistré le: 04 Oct 2015, 14:24

par CRPEmaths » 05 Oct 2015, 09:30

Merci pour ta réponse Lostounet, mais je t'avoue que je n'ai pas tout compris.

Au niveau du principe, OK. Je pense que je devrais réussir avec tes explications, mais j'ai encore besoin d'une info : peux-tu m'expliquer comment tu passes de ta décomposition de A et D à l'écriture binaire ?

Astro52
Membre Relatif
Messages: 115
Enregistré le: 14 Aoû 2015, 15:31

par Astro52 » 05 Oct 2015, 13:17

CRPEmaths a écrit:Merci pour ta réponse Lostounet, mais je t'avoue que je n'ai pas tout compris.

Au niveau du principe, OK. Je pense que je devrais réussir avec tes explications, mais j'ai encore besoin d'une info : peux-tu m'expliquer comment tu passes de ta décomposition de A et D à l'écriture binaire ?


En fait il est facile de passer de la base 16 à la base 2 sans passer par les formules de calcul générales, car 16=2^4

Chaque chiffre de la base 16 peut se remplacer par 4 chiffre de la base 2, et ainsi de suite

Par exemple, si tu as le nombre AB83 on sait que :

A = 1010
B = 1011
8 = 1000
3 = 0011

Et tu t'as plus qu'à remplacer chaque chiffre :
AB83 = 1010101110000011

Astro52
Membre Relatif
Messages: 115
Enregistré le: 14 Aoû 2015, 15:31

par Astro52 » 05 Oct 2015, 13:21

Sinon pour le principe général, tu peux retenir que :
- Un 1 pour premier chiffre vaut 1.
- Un 1 pour deuxième chiffre vaut 2.
- Un 1 pour troisième chiffre vaut 4.
- Un 1 pour quatrième chiffre vaut 8.
- Un 1 pour cinquième chiffre vaut 16.
puis...
32
64
128
256
512
1024
2048
4096

Des nombres que les vieux qui ont connu toute l'évolution de l'informatique connaissent bien...

Ensuite tu additionnes tout pour trouver le nombre en base 10.

CRPEmaths
Messages: 3
Enregistré le: 04 Oct 2015, 14:24

par CRPEmaths » 05 Oct 2015, 13:44

Merci pour vos réponses, mais je suis désolée, la conversion m'échappe encore.

Cela dit, j'ai pigé que si je considère simplement que 0 en hexadécimal c'est 0000 en binaire et que je fais une liste des successeurs, j'obtiens mon écriture binaire pour le chiffre ou le symbole en base 16 voulu.
Ça marche, mais est-ce que c'est çà que vous faites ou est-ce que je suis en train de me compliquer la vie pour un truc très simple et que de procéder comme je viens de l'écrire c'est trop long ? (peut-être que c'est moi aussi qui suis très lente en maths cela dit !!!)

Astro52
Membre Relatif
Messages: 115
Enregistré le: 14 Aoû 2015, 15:31

par Astro52 » 05 Oct 2015, 13:59

CRPEmaths a écrit:Merci pour vos réponses, mais je suis désolée, la conversion m'échappe encore.

Cela dit, j'ai pigé que si je considère simplement que 0 en hexadécimal c'est 0000 en binaire et que je fais une liste des successeurs, j'obtiens mon écriture binaire pour le chiffre ou le symbole en base 16 voulu.
Ça marche, mais est-ce que c'est çà que vous faites ou est-ce que je suis en train de me compliquer la vie pour un truc très simple et que de procéder comme je viens de l'écrire c'est trop long ? (peut-être que c'est moi aussi qui suis très lente en maths cela dit !!!)


Le cas du 2 16 est particulier.

Tu as vite fais de faire une table complète qui peut resservir :

0 -> 0000 (quoiqu'un seul 0 suffit dans l'absolu)
1 -> 0001 (quoiqu'un seul 1 suffit dans l'absolu)
2 -> 0010 (quoique 10 suffit dans l'absolu)
3 -> 0011 (idem)
4 -> 0100 (idem)
5 -> 0101 (idem)
6 -> 0110 (idem)
7 -> 0111 (idem)
8 -> 1000
9 -> 1001
A -> 1010
B -> 1011
C -> 1100
D -> 1101
E -> 1110
F -> 1111

Mais pour les autres conversions (quand une base n'est pas une puissance de l'autre) on est obligé de passer par des formules plus générales, voire de repasser par la base 10 comme intermédiaire.

Astro52
Membre Relatif
Messages: 115
Enregistré le: 14 Aoû 2015, 15:31

par Astro52 » 05 Oct 2015, 14:04

Les 0 de gauche viennent du fait que la conversion 2 / 16 était typique du travail sur la mémoire des ordinateurs. L'affichage en base 16 à l'écran améliorait la lecture de ce que l'ordinateur stocke avec des 0 et des 1, pour un humain... entrainé.
Et donc le 0 de gauche correspond à quelque chose de stocké physiquement dans un espace mémoire de l'ordinateur.

En revanche, sur le plan mathématique, ça ne veut pas dire grand chose d'écrire 0 = 0000 en dehors du cas où on envisage la substitution d'un 0 dans un nombre en base 16 avec cette technique de conversion rapide en base 2 (puisque dans ce cas il y aura d'autres chiffres non nuls encore plus à gauche).

Avatar de l’utilisateur
Lostounet
Admin
Messages: 9665
Enregistré le: 16 Mai 2009, 12:00

par Lostounet » 05 Oct 2015, 14:31

Hello,

Si tu ne vois pas comment convertir de la base 16 à la base 2, convertis d'abord en base 10, puis en base 2.

A, en base 16, ce n'est autre que 10 en base 10. En effet, 9 est le plus grand chiffre qui tient en une seule place. Pour avoir un "10", qui tienne en une place, on le note A.

A [base 16] = 10 [base 10]

Maintenant, on essaye de décomposer 10 en puissances de 2:
10 = 2*5
10 = 2*(2*2+1)
10 = 2^3 + 2
10 = 2^3 x1 + 2^2x0 + 2^1x1 + 2^0 x 0

Donc en binaire, on prend les coefficients: [1010]
Merci de ne pas m'envoyer de messages privés pour répondre à des questions mathématiques ou pour supprimer votre compte.

Black Jack

par Black Jack » 05 Oct 2015, 14:33

Dans un nombre en hexadécimal, chaque chiffre a un poids 16 fois plus grand que le chiffre qui le suit.

Dans 1A7D, le 1 a par sa position dans le nombre un poids 16 fois plus grand que le A qui a a, par sa position dans le nombre un poids 16 fois plus grand que le 7 qui a par sa position dans le nombre un poids 16 fois plus grand que le D

Mais en base 2, pour avoir un poids 16 fois plus grand, un chiffre doit "l'avancer" de 4 rangs

Exemple :
Dans le nombre binaire 1000000, si on veut diviser le poids du 1 par 16, on doit écrire 0000100, le 1 doit donc le "reculer" de 4 rangs.
ou dans l'autre sens :
Dans le nombre binaire 100, si on veut multiplier le poids du 1 par 16, on doit écrire 1000000, le 1 doit donc l'"avancer" de 4 rangs.

Donc le nombre hexadécimal 1A7D

a) le D Hexa = 1101 en binaire (! utiliser 4 chiffres)
b) le 7 hexa = 0111 en binaire, mais ce nombre a un poids 16 fois plus grand que le D du point a --> il doit s'écrire en binaire : 0111 0000 (les 4 zéros ajouté multplie le poids par 16)
c) le A hexa = 1010 en binaire, mais ce nombre a un poids 16 fois plus grand que le 7 du point b --> il doit s'écrire en binaire : 1010 0000 0000
d) le 1 hexa = 0001 en binaire (! utiliser 4 chiffres), mais ce nombre a un poids 16 fois plus grand que le A du point c --> il doit s'écrire en binaire : 0001 0000 0000 0000

on doit donc effectuer (pour avoir l'équivalent en binaire de 1A7D) la somme des 4 lignes précédenteq :

0001 0000 0000 0000 + 1010 0000 0000 + 0111 0000 + 1101

Qui donne immédiatement 0001 1010 0111 1101, soit donc 1101001111101

Ce qui revient à recopier les équivalents binaires de 1, de A de 7 et de D à la suite les uns des autres.

:zen:

 

Retourner vers ✎ Collège et Primaire

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 13 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite