I Système de numération

I.1 - Introduction

Un entier naturel N dans une base b, peut se décomposer tel que : avec les symboles (i position du symbole -1 car le premier i est 0)

Attention !

ne signifie pas que N peut s’écrire sous la forme d’une multiplication, c’est bien la suite de symboles qu’on représente. Par exemple N = 12 avec et

Donc dépend de la base utilisée, par exemple en base 10 :

Pour une base donnée, on peut la représenter dans une base 10 à chaque fois : avec le poids associé au symbole

La signification du symbole dépend de son poids (donc de sa place dans la suite de symboles représentant le nombre) → position du symbole très importante

Exemple

15 51 même symbole mais avec des positions différentes

Même chose pour la partie fractionnaire avec donc

I.2 - nombres décimaux - base 10

Les symboles en base 10 : Les poids sont des puissances de 10 positives :

Décomposer 1987 en base 10

7 est dit le poids faible (nombre tout à droite)

Attention dans la décomposition

décalage d’indice entre la position et le poids (dans l’exemple précédent, 9 est à la troisième position mais avec un poids de 2)

Partie fractionnaire (après la virgule)

Donc et

Même chose que précédemment mais les puissances de 10 sont négatives (car )

Décomposer 25,308 en base 10

I.3 - nombres binaires (base 2)

Base la + utlisée en informatique : a deux valeur (0 ou 1), que l’on peut aussi noter (Vrai/Faux)

Les symboles utilisés dans la base binaires = bits (binary digit) 8 bits = 1 octect stockage des informations en octetcs

Donc, l’écriture d’un nombre en base 2 est tel que : qui en écriture donne :

Attention !

Entre la représentation d’un nombre par sa somme de symboles et de poids et son écriture, on inverse le sens ! La première position est celle toute à droite en écriture

  • Most Significant Bit (MSB) :
  • Less Significant Bit (LSB) :

Décomposer 101 ("un zéro un" et non "cent-un")

On peut faire de même qu’en base 10 pour la partie fractionnaire.

Tableau des puissances de 2

1024512256 (octet)128643216843
10.50.250.125

I.4 - nombres hexadécimaux (base 16)

Très utilisée en informatique pour l’affichage des nombres binaires car 1 hexadécimal correspond à 4 bits

avec $0 < \alpha_{i}<15$$

  • Symboles : {0, 1, …, 9, A, B, C, D, E, F}
  • Poids : puissances positives de 16

Tableau de correspondance

ABCDEF
101112131415

Décomposer AF,D8 (16) en base 16

II Conversions (transcodage)

On cherche les opérations pour changer de base. Plus la base est petite, plus le nombre de symboles équivalent en sortie de conversion est grand.

II.1 - Conversion d’un nombre en base b (2 ou 16) à un nombre en base 10

Conversion la plus simple, toujours la même méthode utilisée écriture polynomiale :

Convertir 10011 (2) en base 10

De même avec la base 16 :

Convertir 5EA (16) en base 10

A vaut 10, E vaut 14 en base 16

II.2 - Conversion d’un nombre en base 10 à un nombre en base b (2 ou 16)

Méthode un peu plus complexe que dans l’autre sens. Il existe 2 méthodes :

  • par soustraction
  • par division

Méthode par soustraction

  1. Recherche du poids le plus proche inférieur de N dans la base b :
  2. Soustraction de N(10) du nombre qui multiplie cette puissance
  3. Retour à l’étape 2 avec le nombre obtenu
  4. Fin quand on arrive à pour la partie entière (donc )

Partie fractionnaire

Même méthode, poids fort à droite de la virgule (contrairement au nombre entier où le poids fort est à gauche de la virgule) Mais attention, le procédé peut devenir infini

Nombre de bits nécessaires :

Convertir 95 (10) en base 2

  1. Puissance de 2 la plus proche de 95 : 64
  2. On soustrait à 95 une fois 64 (car on a 1 fois 64 max dans 95) :
  3. On répète l’opération : puissance de 2 la plus proche 32 donc

On a donc :

Donc on a

Convertir 95 (10) en base 16

Donc

Méthode par divisions euclidiennes successives par b

Partie entière

Attention

Lecture de bas en haut pour cette méthode contrairement à la méthode précédente qui se fait de haut en bas

Convertir 95 (10) en base 2

Puis, on prend le quotient de la division et on répète l’opération :

Le quotient est égal à 0 donc on s’arrêt à cette étape

Donc on obtient le nombre (lecture de bas en haut des restes) :

Convertir 95 (10) en base 2

Donc les restes sont et donc le nombre est

Petites astuces

  • Les multiples de b se terminent par 0 :
  • Les multiples de b2 se terminent par 00 :
  • Les multiples de b3 se terminent par 000 :

(fonctionne en base 10 : 100 = 102)

Pour la conversion en base binaire : Avec n bits 2n (valeurs de 0 à 2n-1)

Nombre de bits481632
Plage de valeurs0 à 150 à 2550 à 65 5350 à 4 294 672 296
Partie fractionnaire

On peut utiliser la Méthode par soustraction pour la partie fractionnaire

La méthode de division successive ne fonctionne pas donc on utilise la méthode de multiplication successives par b Le calcul peut être infini pour la partie fractionnaire

Convertir 0,375 (10) en base 2

On s’arrête lorsque l’on atteint x ,0

On lit les chiffres entiers pour la partie décimale : donc

Convertir 0,375(10) en base 16

Donc :

II.3 - Conversion d’un nombre entre les bases 2 et 16

Base binaire = 22 Base hexadécimale = 24 Donc la conversion est assez rapide car on peut faire des paquets de bits

Hexadécimal vers binaire

Chaque symbole est remplacé par 4 bits

Binaire vers hexadécimal

  • 1 paquet de 4 bits = 1 symbole
  • Séparation de la partie entière et de la partie fractionnaire
    • Partie entière : de la droite vers la gauche
    • Partie fractionnaire : de la gauche vers la droite
  • Rajouter des 0 si besoin

Convertir FA,8 (16) en base 2

  • F en binaire : 1111(2) (on peut passer par l’intermédiaire de la base 10, où F vaut 15 si besoin)
  • A en binaire : 1010(2)
  • 8 en binaire : 1000 (car )

Donc :

Convertir 10111,01 (2) en base 16

On ajoute des 0 à gauche de la virgule et à droite de la virgule pour avoir des paquets de 4 bits 001 0111, 0100

Donc :

  • 0001(2) = 1(16)
  • 0111(2) = 7(16)
  • 0100(2) = 4(16)

Soit : 0001 0111,0100(2) = 17,4(16)

III Opérations

Additions

Comme en décimal (indiquer les retenues)

Règles en base 2

  • 1(2) + 1(2) = 10(2)
  • 1(2) + 0(2) = 1(2)
  • 1(2) + 1(2) + 1(2) = 11(2)

111 (2) + 011(2)

Astuce pour la base 16

On complète pour arriver à 10(16)

Exemples

  • A(16) + 8(16) = A(16) + 6(16) +2(16) car A+6 = 16

Donc A(16) + 8(16) = 10(16) + 2(16) = 12(16)

  • C(16) + 8(16) = C(16) + 4(16) + 4(16) = 14(16)

68 (16) + 3A(16)

Soustractions

Règles pour la base 2

1(2) - 1(2) = 0

10(2) - 1(2) = 1

Exemples en base 2

111(2) - 011(2)

100(2) - 011(2)

Car 0 - (1 + 1) = 0 - 10 on doit rajouter une unité

Exemple en base 16

68(16) - 3A(16)

Astuces en base 16

Pour faire 18 - A, de la même manière que pour l’addition on complète à 10(16). Comme A = 8+2, on a : 18(16) - A(16) = 18(16) - 8(16) - 2(16) = 10(16) - 2(16) = E(16)

Autre exemple : 15(16) - 8(16) Pour aller à 10(16), on a : 15(16) - 5(16) Donc en décomposant 8(16) : 15(16) - 5(16) - 3(16) = 10(16) - 3(16) = D(16)

(car on a en base 16 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12 … 1A, 1B … etc.)

Conclusion

On a vu les différentes manières de coder un nombre dans différentes bases. Les nombres ne sont pas directement codés en binaire, ou en hexadécimal, il existe des formats pour les coder en machine.