Professional Documents
Culture Documents
Tutoriels Le Systeme Numerique 1
Tutoriels Le Systeme Numerique 1
Mandragor
Accueil
Or un bit n'est pas suffisant pour coder tout les informations que l'on souhaiterait
manipuler. On va donc employer des groupement de plusieurs bits. Un octet (en anglais
byte, à ne pas confondre avec bit) est un regroupement de 8 bits.
0 0 0 0 0 0 0 0
7 6 5 4 3 2 1 0
Un groupe de 16 bits, soit deux bytes, est appelé un mot (word en anglais). Le byte de
gauche est appelé byte de poids fort, le byte de droite byte de poids faible.
Un groupe de 32 bits, soit 2 mots, est appelé un mot long. Le mot de gauche est appelé
byte de poids fort, le byte de droite byte de poids faible.
Attention: toutes les conversions à suivre se basant sur le binaire ou l'hexadécimal sont
valables pour des nombres binaires dont le bit de poids fort est 0, et pour les nombres
hexadécimaux dont le premier chiffre est strictement inférieur à 8. Dans le cas contraire,
on tombe dans le cas de nombre négatifs, cas que nous détaillerons plus tard.
Notations
Le fait de disposer d'autant de bases a un léger inconvénient: si je vous donne le nombre
10, s'agit-il du nombre 10 en base décimale (10), celui qu'on est habitué à rencontrer, ou
bien alors du nombre en base binaire, qui vaut 2 en base décimale? Pour pallier à ce
problème, plusieurs notations sont utilisées. On fait parfois suivre le nombre d'un
caractère exprimant la base:
http://www.mandragor.org/tutoriels/le_systeme_numerique/1 17/06/2009
Mandragor - Tutoriels Page 2 sur 4
Notre 10 sera donc écrit en base décimale sous la forme 10d, et 10b sera sa forme finaire.
Un autre notation est de placer le nombre entre parenthèse et de spécifier la dimension de
la base en indice. En aura ainsi (10)2 et (10)10.
Un nombre peut donc être décomposé sous la forme de la somme de chacun des chiffres
qui le composent, multipliés par la dimension de la base à l'exposant de leur rang. Cette
méthode n'est pas valable uniquement pour les nombres décimaux. J'arrive donc à mon
système binaire, avec un autre nombre pris au hasard.
01011010
La première chose à faire est de numéroter les bits comme nous l'avons vu un peu plus
haut.
0 1 0 1 1 0 1 0
7 6 5 4 3 2 1 0
Conversion décimal->binaire
La, c'est un peu plus ennuyeux. En fait il faut diviser le nombre décimal en somme de
puissances de 2. Par exemple, 149 peut s'écrire 128 + 16 +4 + 1. Il n'y a pas vraiment de
secret... les puissances de 2 c'est bien pratique de les savoir par coeur. Retenez quelques
valeurs clés, par exemple 28 = 256, 216=65536. Vous retrouverez les autres en divisant
ou en multipliant par 2, c'est plus pratique que de passer par 20 si on cherche 29.
http://www.mandragor.org/tutoriels/le_systeme_numerique/1 17/06/2009
Mandragor - Tutoriels Page 3 sur 4
encore immédiatement inférieure, 32, pareil, donc pas de 32. On arrive ensuite à 16, là
128 + 16 = 144 < 149, on rajoute donc 16 à notre somme. Bon, là le reste c'est pareil,
enfin là on n'a plus qu'une différence de 5, j'espère que vous savez écrire 5 = 4 + 1 :).
L'hexadécimal
C'est d'ordinaire une base qui semble un peu compliquée. En effet, sa dimension est de
16, c'est à dire qu'il faut 16 chiffres différents pour former un nombre. Et comme notre
bon vieux alphabet latin ne nous donne que dix chiffres (il nous en manque donc 6), et
bien au lieu de créer 6 nouveaux chiffres on a décidé d'utiliser les lettres. Les chiffres
composant le système hexadécimals ont donc 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Mais pourquoi avoir créé un système hexadécimal me direz vous? Et bien le binaire, c'est
bien sympathique, mais à partir du moment où on commence à travailler sur des nombres
relativement important, les chaines de 0 et de 1 commencent par ne plus en finir. Le
système hexadécimal permet de coder des nombres importants avec très peu de
caractères (4 chiffres suffisent à coder 65536 états différents!), et de plus comme nous
allons le voir par la suite les conversions binaire->hexadécimal et hexadécimal->binaire
sont particulièrement aisées.
Conversion binaire->hexadécimal
La non plus, c'est pas bien dur. Prenons un mot: 0011011100101101b. Voyons voir
combien cela fait en hexadécimal. La première chose à faire est de diviser ce mot en
sections de 4 bits chacune -> 1011 0111 0010 1101. Maintenant pour chaque groupe de 4
bits (nibble en anglais) on va associer le chiffre hexadécimal correspondant.
http://www.mandragor.org/tutoriels/le_systeme_numerique/1 17/06/2009
Mandragor - Tutoriels Page 4 sur 4
0011b = 3d = 3h
0111b = 7d = 7h
0010b = 2d = 2h
1101b = 13d = Dh
L'octal
L'octal est une base 8, composée des chiffres allant de 0 à 7. Je ne détaillerai pas les
calculs ici, étant donné que cette base est très rarement utilisée (pour être franc je n'ai
jamais eu à y faire appel) et que de plus les conversions se font de la même manière que
les autrs.
Mandragor.org - 2006
http://www.mandragor.org/tutoriels/le_systeme_numerique/1 17/06/2009