Partage
  • Partager sur Facebook
  • Partager sur Twitter

conversion hexadecimal en octal et le contraire

Sujet résolu
Anonyme
20 novembre 2014 à 22:17:58

Salut,

D'après ce qu'on a étudié l'année derniere dans l'algorithme , pour faire la conversion entre l'octal et le hexadecimal il faut passer par le binaire , mais j'ai entendu qu'il y a une méthode directe (division successive ou multiplication par puissance decroissante ou.. je ne sais pas ). est ce que c'est vrai ? si oui , pouvez vous m'expliquer cette méthode s'il vous plait 

Merci d'avance ,

  • Partager sur Facebook
  • Partager sur Twitter
20 novembre 2014 à 23:54:04

Il y a plusieurs façon de faire.


Le plus simple étant surement de passer par le binaire et de faire des groupes.

Exemple pour convertir 57F en octal en passant par le binaire :

1/ Convertir chaque digit en binaire sachant que chaque digit est indépendant et donne 4 digit binaire :

=> 57F = 5 7 F = 0101 0111 1111

2/ Regrouper par bloc de 3 :

=> 0101 0111 1111 = 010 101 111 111

3/ Convertir chaque groupe de digit en octal sachant que chaque groupe est indépendant et donne 1 digit octal

=> 010 101 111 111 = 2 5 7 7 = 2577

ET voila, 57F (hex) = 2577 (oct)


Autre solution : faire les calculs à base de division modulo.

57F (hex) = 1407 (décimal)

1407 divisé par 8 = 175 reste 7 (donc le chiffre le plus à droite est 7)
175 divisé par 8 = 21 reste 7 (donc le chiffre d'après est 7)
21 divisé par 8 = 2 reste 5 (donc le chiffre encore après est 5)
2 divisé par 8 = 0 reste 2 (donc le dernier chiffre est 2)

Ce qui nous donne : 57F (hex) = 2577 (oct)

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
21 novembre 2014 à 0:22:35

ah donc soit passer par la base binaire ou decimale,  merci beaucoup !
  • Partager sur Facebook
  • Partager sur Twitter
21 novembre 2014 à 8:11:07

Tu peux aussi resté en hexa si ta calculatrice de permet de faire des calculs en hexa ;)

57F divisé par 8 = AF reste 7
AF divisé par 8 = 15 reste 7
15 divisé par 8 = 2 reste 5
2 divisé par 8 = 0 reste 2

Donc 57F (hex) = 2577 (oct)


Mais l'avantage du binaire, c'est que tu n'as pas besoin de calculatrice.

Il faut simplement savoir faire la conversion hex/bin jusqu'à 15 ou apprendre ce tableau par cœurs :

0000 = 0
0001 = 1
0010 = 2
0011 = 3
...
1110 = 14 = D
1111 = 15 = F

-
Edité par lorrio 21 novembre 2014 à 8:14:35

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
21 novembre 2014 à 15:11:38

d'accord merci beaucoup ^___^  , les calculs hexa (division par 8 dans ce cas) comment on les fait ??
  • Partager sur Facebook
  • Partager sur Twitter
21 novembre 2014 à 15:30:22

lorrio a écrit:

Tu peux aussi resté en hexa si ta calculatrice de permet de faire des calculs en hexa ;)

Cela se fait avec une calculatrice capable de faire de l'hexa ou éventuellement de tête si tu es très fort en calcul mental :-°

A noter que la calculatrice de windows en mode programmeur permet de faire des calculs en hexa (addition, soustraction, multiplication, division ET reste avec le bouton "MOD")

Cependant, en mode programmeur, la calculatrice windows permet aussi de faire directement des conversion binaire/octal/décimal/hexa alors pourquoi se priver ? ;)

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
22 novembre 2014 à 8:42:57

dsl j'ai mal posé ma question, je voulais demander comment faire la conversion manuellement?? quelles sont les règles???
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2014 à 11:58:40

Souviens toi de tes cours de primaire et fais la même chose en base 16.

Exemple pour diviser 23 par 6 en base décimal :

Supposons que tu veux diviser 57F par 8, c'est pareil, sauf qu'il faut être assez bon en calcul ;)

Commences d'abord par poser la division :

57F | 8
--------
    | 
    | 
    | 

Ensuite, c'est de gauche à droite.

Il faut diviser 5 par 8 qui donne 0 reste 5.

57F | 8
--------
5   | 0
    | 
    | 

Tu fais glisser le chiffre suivant vers le bas :

57F | 8
--------
57  | 0
    | 
    | 

Maintenant, il te faut diviser 57 par 8, c'est tout de suite moins drôle et ça donne A reste 7.

Preuve en décimal : 57 = 87 = 8*10 + 7 (avec le 10 qui donne A en hexa)

57F | 8
--------
57  | 0A
 7  | 
    | 

Tu fais encore glisser le chiffre suivant vers le bas :

57F | 8
--------
57  | 0A
 7F | 
    | 

 Là encore, on va s'amuser à diviser 7F par 8 et ça donne F reste 7.

Preuve en décimal : 7F = 127 = 8*15 + 7 (avec le 15 qui donne F en hexa)

57F | 8
--------
57  | 0AF
 7F | 
  7 | 

 Bref, 57F divisé par 8 donne bien AF reste 7.


Donc j'en profite pour le redire encore une fois, c'est bien plus simple et plus rapide en passant par le binaire.

-
Edité par lorrio 22 novembre 2014 à 11:59:48

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
23 novembre 2014 à 14:05:56

ok vous avez raison rien n'est mieux que le passage par le binaire xD

avec cette methode on doit chaque fois convertir au decimal + faire la division c'est trop long .

Merci beaucoup !

  • Partager sur Facebook
  • Partager sur Twitter
23 novembre 2014 à 14:16:42

Non, t'es pas obligé ;)

Tu sais faire des calculs en décimal parce que tu as fais des calculs en décimal toute ta vie depuis le primaire.

Rien ne t’empêche de t'entrainer à faire des calculs en hexa, ça viendra petit à petit.

Mais même en sachant faire des calculs hexa, c'est quand même plus simple de passer par le binaire ^^

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
23 novembre 2014 à 16:44:42

Oui c'est vrai , merci beaucoup pour votre temps et vos réponses !
  • Partager sur Facebook
  • Partager sur Twitter