# Numération : représentation des nombres

9 min read
Table of Contents

I Système de numération

I.1 - Introduction

Un entier naturel N dans une base b, peut se décomposer tel que : Nb=αpαp1...α1α0N_{b} = \alpha_{p}\alpha_{p-1}...\alpha_{1}\alpha_{0} avec les symboles αi0<αi<b1\alpha_{i} \rightarrow 0 < \alpha_{i}<b-1 (i position du symbole -1 car le premier i est 0)

:::warning[Attention]!

Nb=αpαp1...α1α0N_{b} = \alpha_{p}\alpha_{p-1}...\alpha_{1}\alpha_{0} 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 α0=1\alpha_{0} = 1 et α1=2\alpha_{1} = 2 :::

Donc αi\alpha_{i} dépend de la base utilisée, par exemple en base 10 : 0<αi<90 < \alpha_{i}<9

Pour une base bb donnée, on peut la représenter dans une base 10 à chaque fois : N(b)i=0pαibiN_{(b)}\sum_{i=0}^{p} \alpha_{i}b^{i} avec bib^{i} le poids associé au symbole αi\alpha_{i}

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

Même chose pour la partie fractionnaire avec bii<0b^{i} \rightarrow i<0 donc bi<1b^{i}<1

I.2 - nombres décimaux - base 10

Les symboles en base 10 : 0<αi<90 < \alpha_{i}<9 Les poids sont des puissances de 10 positives : 10i10^{i}

Partie fractionnaire (après la virgule)

Donc i<0i<0 et n10=pi1αi10in_{10} = \sum_{p}^{i-1}\alpha_{i}10^{i}

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

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 : N(2)=i=0pαi2i=α020+...+αp2pN_{(2)}=\sum_{i=0}^{p} \alpha_{i}2^{i} = \alpha_{0}2^{0} +...+ \alpha_{p}2^{p} qui en écriture donne : αp...α0\alpha_{p}...\alpha_{0}

:::warning[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) :αp\alpha_{p}
  • Less Significant Bit (LSB) : α0\alpha_{0}

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

Tableau des puissances de 2

2102^{10}292^{9}282^{8}272^{7}262^{6}252^{5}242^{4}232^{3}222^{2}212^{1}
1024512256 (octet)128643216843
202^{0}212^{-1}222^{-2}232^{-3}
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

N(2)i=0pαi16i=α0160+...+αp16pN_{(2)}\sum_{i=0}^{p} \alpha_{i}16^{i} = \alpha_{0}16^{0} +...+ \alpha_{p}16^{p} 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

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 : Nb=i=0pαibi=N10N_{b}=\sum_{i=0}^{p} \alpha_{i}b^{i} = N_{10}

De même avec la 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 : bk1b^{k-1}
  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 à b0b^{0} pour la partie entière (donc k=1k=1)

:::warning[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 : k=log2(N(10))+1k = \lfloor log_{2}(N_{(10)}) \rfloor +1 ou\text{ou} 2k1<N(10)<2k2^{k-1}<N_{(10)}<2^{k}

Méthode par divisions euclidiennes successives par b

Partie entière
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

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

III Opérations

Additions

Comme en décimal (indiquer les retenues)

Soustractions

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.

My avatar

Thanks for reading ! You can check my other posts or reach out by clicking on my name in the footer, or right here 😼


More Posts