0% ont trouvé ce document utile (0 vote)
73 vues46 pages

Représentation des Nombres en Systèmes Positifs

Ce document traite de la représentation des nombres dans différentes bases numériques comme le binaire, le décimal et l'hexadécimal. Il explique comment représenter et convertir des nombres entiers et fractionnaires d'une base à l'autre.

Transféré par

fadhidouro
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
73 vues46 pages

Représentation des Nombres en Systèmes Positifs

Ce document traite de la représentation des nombres dans différentes bases numériques comme le binaire, le décimal et l'hexadécimal. Il explique comment représenter et convertir des nombres entiers et fractionnaires d'une base à l'autre.

Transféré par

fadhidouro
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Représentation des nombres

Algo & Prog avec R

Arnaud Malapert
28 septembre 2022
Université Côte d’Azur, CNRS, I3S, France
[email protected]
Cours en AUTOFORMATION

Représentation des nombres


I Système positionel : binaire, décimal, octal, et héxadécimal.
I Nombre non signé seulement (positif).
I Représentation en machine des entiers naturels seulement !

Prérequis
Savoir additionner, soustraire, multiplier, et diviser ! Surtout par 2 !

Évaluation : Gagner un max de points en peu de temps !


I 3 points du même QCM dans le contrôle terminal.
I Exercices de programmation autour des algorithmes de conversion.
I Activité de programmation d’une appli web de conversion.

1/32
Table des matières

1. Système positionnel
Entiers naturels
Nombres fractionnaires

2. Multiplication et division égyptiennes

3. Arithmétique binaire

4. Représentation des nombres en machine

2/32
Système positionnel
Représentation des nombres

On représente les nombres grâce à des symboles.

Représentation unaire : un symbole de valeur unique.


I I=1, II = 2, III = 3, Iet IIIIIIIII = 10.
I Le calcul est facile.
I I + III = IIII ;
I II × III = II II II = IIIIII

I mais cela devient vite incompréhensible

Chiffres Romains : plusieurs symboles ayant des valeurs différentes.


I Le nombre de symboles est théoriquement infini.
I I=1, V=5, X = 10, L = 50 . . ..

I Le calcul est impossible.

3/32
Représentation des nombres

Système positionnel : symboles dont la valeur dépend de la position


I 999 = 900 + 90 + 9
I À Babylone, système sexagésimal (60) (IIe millénaire av J-C).
I Transmission de l’orient vers l’occident avec le zéro (env.
825 ap. J-C) 1

Un brin de cynisme
Les hommes sont comme les chiffres, ils n’acquièrent de la valeur
que par leur position.
Napoléon Bonaparte

1. « Al-jabr wa’l-muqâbalah » Muhammad ibn Müsä al-Khuwärizmï


4/32
Système positionnel

Utilisation d’une base b


I Les nombres sont représentés à l’aide de b symboles distincts.
I La valeur d’un chiffre dépend de la base.

Un nombre x est représenté par une suite de symboles :

x = an an−1 . . . a1 a0 .

Décimale (b = 10), ai ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}


Binaire (b = 2), ai ∈ {0, 1}
Hexadécimale (b = 16), ai ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C , D, E , F }

5−1
Les bases les plus utilisées sont : 10, 2, 3, 2k , 12, 16, 60, 2 ...
Notation
(x )b indique que le nombre x est écrit en base b.
5/32
Système positionnel

Entiers naturels
Représentation des entiers naturels

En base b
n
X
x = an an−1 . . . a1 a0 = ai b i
i=0

I a0 est le chiffre de poids faible,


I an est le chiffre de poids fort.

En base 10
(1998)10 = 1 × 103 + 9 × 102 + 9 × 101 + 8 × 100 .

En base 2

(101)2 = 1 × 22 + 0 × 21 + 1 × 20
= 4 + 0 + 1 = 5.

6/32
Traduction vers la base 10

Méthode simple
I On applique simplement la formule.
I Cela revient donc à une simple somme.
I En pratique, on peut utiliser la multiplication égyptienne.

Schéma de Horner
I Méthode générale pour calculer l’image d’un polynôme en un point.
I Moins d’opérations que la méthode simple.
I Plus efficace pour une machine, pas nécessairement pour un humain.

7/32
Schéma de Horner

Une reformulation judicieuse de l’écriture en base b


n
X
an an−1 . . . a1 a0 = ai b i
i=0

= ((. . . ((an b + an−1 )b + an−2 ) . . .)b + a1 )b + a0

Algorithme simple et efficace


I Initialiser l’accumulateur : v = 0.
I Pour chaque chiffre ai en partant de la gauche : v ← (v × b) + ai .

8/32
Schéma de Horner

Algorithme simple et efficace


I Initialiser l’accumulateur : v = 0.
I Pour chaque chiffre ai en partant de la gauche : v ← (v × b) + ai .

(10110)2 = (22)10 (12021)3 = (142)10


ai v Calcul de v ai v Calcul de v
1 1 2×0+1 1 1 3×0+1
0 2 2×1+0 2 5 3×1+2
1 5 2×2+1 0 15 3×5+0
1 11 2 × 5 + 1 2 47 3 × 15 + 2
0 22 2 × 11 + 0 1 142 3 × 47 + 1

8/32
Traduction entre des puissances de 2

Du binaire vers une base 2k


Regrouper les bits par k en partant de la droite et les traduire.
D’une base 2k vers le binaire
Traduire chacun des symboles en un nombre binaire.
Du binaire vers l’héxadécimal (24 )
Regrouper les bits par 4 en partant de la droite.
(00)10 0101 1110 0001 1101 1111
2 5 E 1 D F
Du binaire vers l’octal (23 )
Regrouper les bits par 3 en partant de la droite.
(00)1 001 011 110 000 111 011 111
1 1 3 6 0 7 3 7
D’une base 2k vers une base 2p
1. Passer par le binaire : (x )2k → (x )2 → (x )2p .
2. Généraliser la méthode précédente si k est un diviseur/multiple de p.
3. Appliquer un algorithme de traduction vers une base quelquonque. 9/32
Traduction vers une base quelquonque

Nombre entier
On procède par divisions euclidiennes successives :

I On divise le nombre par la base,


I puis le quotient par la base,
I ainsi de suite jusqu’à obtenir un quotient nul.

La suite des restes obtenus correspond aux chiffres de a0 à an dans la


base visée.

(44)10 = (101100)2 (44)10 = (1122)3


44 = 22 × 2 + 0 a0 =0 44 = 14 × 3 + 2 a0 =2
22 = 11 × 2 + 0 a1 =0 14 = 4 × 3 + 2 a1 =2
11 = 5 × 2 + 1 a2 =1 4 = 1×3+1 a2 =1
5 = 2×2+1 a3 =1 1 = 0×3+1 a3 =1
2 = 1×2+0 a4 =0
1 = 0×2+1 a5 =1 10/32
Traduction depuis une base quelquonque

Il faut diviser dans la base d’origine.


Les calculs sont donc difficiles pour un humain !

(101100)2 = (1122)3
101100 = 1110 × 11 + 10 a0 =2
1110 = 100 × 11 + 10 a1 =2
100 = 1 × 11 + 1 a2 =1
1 = 0 × 11 + 1 a3 =1
Passez par le décimal !
(x )b → (x )10 → (x )b 0 .

11/32
Exercices

I Traduire (10101)2 en écriture décimale.


I Traduire (10101101)2 en écriture décimale.
I Traduire (10101001110101101)2 en écriture hexadécimale.
I Traduire (1AE 3F )16 en écriture binaire.
I Traduire (1AE 3F )16 en écriture octal.
I Traduire (927)10 en écriture binaire.
I Traduire (1316)10 en écriture binaire.

12/32
Système positionnel

Nombres fractionnaires
Représentation des nombres fractionnaires

En base b
La formule est la même, mais il existe des exposants négatifs.
n
X
x = an an−1 . . . a1 a0 , a−1 a−2 . . . a−k = ai b i
i=−k

En base 10
19.98 = 1 × 101 + 9 × 100 + 9 × 10−1 + 8 × 10−2 .

En base 2

(101, 01)2 = 1 × 22 + 0 × 21 + 1 × 20 + 0 × 2−1 + 1 × 2−2


= 4 + 0 + 1 + 0 + 0.25 = 5, 25.

13/32
Traduction vers une base quelquonque

Nombre fractionnaire
I On décompose le nombre en partie entière et fractionnaire si x > 0 :

x = E [x ] + F [x ].

I On convertit la partie entière par la méthode précédente :

E [x ] = an an−1 . . . a1 a0 .

I On convertit la partie fractionnaire :

F [x ] = 0, a−1 a−2 . . . a−m .

I Finalement, on additionne la partie entière et fractionnaire :

x = an an−1 . . . a1 a0 , a−1 a−2 . . . a−m . . . .

14/32
Traduction vers une base quelquonque

Partie fractionnaire
I on multiplie F [x ] par b. Soit a−1 la partie entière de ce produit,
I on recommence avec la partie fractionnaire du produit pour obtenir
a−2 ,
I et ainsi de suite . . .
I on stoppe l’algorithme si la partie fractionnaire devient nulle.

(0, 734375)10 = (0, BC )16


0, 734375 × 16 = 11, 75 a−1 = B
0, 75 × 16 = 12 a−2 = C

15/32
Traduction de 0,3 en base 2

(0, 3)10 = (0, 01001100110011 . . .)2


0, 3 × 2 = 0, 6 a−1 = 0
0, 6 × 2 = 1, 2 a−2 = 1
0, 2 × 2 = 0, 4 a−3 = 0
0, 4 × 2 = 0, 8 a−4 = 0
0, 8 × 2 = 1, 6 a−5 = 1
0, 6 × 2 = 1, 2 a−6 = 1
0, 2 × 2 = 0, 4 a−7 = 0
La conversion d’un nombre fractionnaire ne s’arrête pas toujours.
I En base b, on ne peut représenter exactement que des nombres
fractionnaires de la forme X /b k
I La conversion d’un nombre entier s’arrête toujours.

Il faudra arrondir . . .

16/32
Exercices

I Traduire (10101101)2 en écriture décimale.


I Traduire (10101001110101101)2 en écriture hexadécimale.
I Traduire (1AE 3F )16 en écriture décimale.
I Traduire (1AE 3F )16 en écriture binaire.
I Traduire (13.1)10 en écriture binaire.

17/32
Multiplication et division
égyptiennes
Multiplication égyptienne

Principe
I Décomposition d’un des nombres en une somme.
On décompose généralement le plus petit.
I Création d’une table de puissance pour l’autre nombre
I Très souvent, traduction du décimal vers le binaire.
Il existe des variantes en fonction de la complexité de l’opération.
I Il suffit de savoir multiplier par deux et additionner !

18/32
Multiplication égyptienne : x × y

I On construit la ligne i + 1 en multipliant par deux 2i et x × 2i tant


que 2i+1 < y .

189 × 21 = 3969
i ai 2i 189 × 2i
0 1 189
1 2 378
2 4 756
3 8 1512
4 16 3024

19/32
Multiplication égyptienne : x × y

I On construit la ligne i + 1 en multipliant par deux 2i et x × 2i tant


que 2i+1 < y .
I On traduit 21 en binaire en remontant dans le tableau.
I On calcule n0 ai (x × 2i ).
P

189 × 21 = 3969
i ai 2i 189 × 2i
0 1 1 189 X (1 -1 = 0)
1 0 2 378
2 1 4 756 X (5 -4 = 1)
3 0 8 1512
4 1 16 3024 X (21 -16 = 5)
3969

19/32
Méthode genérale

Des opérations plus complexes faisant intervenir par exemple des


fractions exigeaient une décomposition avec :
I les puissances de deux,
I les fractions fondamentales,
I les dizaines.

La technique est rigoureusement la même mais offre plus de liberté au


scribe quant à la décomposition du petit nombre.

1 7 1
243 × 27 = 6561 Papyrus Rhind : 14 × 4 = 8
1 243 1
1 14
2 486 1 1
2 28
4 972 1 1
20 4860 4 56
7 1
27 6561 4 8 ( 4+2+1
56 )

20/32
Division égyptienne : x ÷ y

Par quoi doit-on multiplier y pour trouver x ?


I On construit la ligne i + 1 en multipliant par deux 2i et y × 2i tant
que y × 2i+1 < x .

539 ÷ 7 = 77
i 2i 7 × 2i
0 1 7
1 2 14
2 4 28
3 8 56
4 16 112
5 32 224
6 64 448
21/32
Division égyptienne : x ÷ y

Par quoi doit-on multiplier y pour trouver x ?


I On construit la ligne i + 1 en multipliant par deux 2i et y × 2i tant
que y × 2i+1 < x .
I On décompose x par les y × 2i en remontant dans le tableau.
I On calcule la somme des 2i de la décomposition.

539 ÷ 7 = 77
i 2i 7 × 2i
0 1 7 X (7 − 7 = 0)
1 2 14
2 4 28 X (35 − 28 = 7)
3 8 56 X (91 − 56 = 35)
4 16 112
5 32 224
6 64 448 X (539 − 448 = 91)
77
21/32
Division dont le résultat est fractionnaire

234 ÷ 12 = 19.5
i 2i 12 × 2i

0 1 12
1 2 24
2 4 48
3 8 96
4 16 192

22/32
Division dont le résultat est fractionnaire

234 ÷ 12 = 19.5
i 2i 12 × 2i

0 1 12 X (6)
1 2 24 X (18)
2 4 48
3 8 96
4 16 192 X (42)

22/32
Division dont le résultat est fractionnaire

234 ÷ 12 = 19.5
i 2i 12 × 2i
1
-1 2 6 X (0)
0 1 12 X (6)
1 2 24 X (18)
2 4 48
3 8 96
4 16 192 X (42)
19.5

22/32
Exercices

1. Multipliez 187 par 11.


2. Multipliez 2012 par 1515 (indice : utilisez la méthode genérale).

23/32
Exercices

1. Multipliez 187 par 11.


2. Multipliez 2012 par 1515 (indice : utilisez la méthode genérale).

187 × 11 2012 × 1515


i ai 2i 11 × 2i 5 10060
0 1 1 187 10 20120
1 1 2 374 500 1006000
2 0 4 748 1000 2012000
3 1 8 1496 1515 3048180
11 2057

23/32
Arithmétique binaire
Représentation de l’information en machine

I Informations en général représentées et manipulées sous forme


binaire.
I L’unité d’information est le chiffre binaire ou bit (binary digit).
I Les opérations arithmétiques de base sont faciles à exprimer en
base 2.
I La représentation binaire est facile à réaliser : systèmes à deux états
obtenus à l’aide de transistors.

24/32
Addition binaire

Tables d’addition
I 0+0=0
I 1+0=1
I 0+1=1
I 1 + 1 = 10 (0 et on retient 1)

91 + 71 = 162
1 1 1 1 1 1
1011011
+1000111
1 0100010

25/32
Soustraction binaire

Tables de soustraction
I 0−0=0
I 1−0=1
I (1)0 − 1 = 1 (1 et on retient 1)
I 1−1=0

83 − 79 = 4
1 1
1010011
-1001111
1 1

0000100
Limitation : résultat négatif
On ne peut traiter x − y que si x ≥ y .

26/32
Multiplication binaire

Tables de multiplication
I 0×0=0
I 1×0=0
I 1×1=1

23 × 11 = 253
10111
× 1011
1 1 1 1 1
10111
+ 10111
+10111
11111101

27/32
Division binaire

Soustractions et décalages comme la division décimale


I sauf que les digits du quotient ne peuvent être que 1 ou 0.
I Le bit du quotient est 1 si on peut soustraire le diviseur, sinon il
est 0.

231 ÷ 11 = 21
1 1 1 0 0111 1011
−1 0 1 1 10101
1 1 01
−1 0 11
1011
−1011
0
Limitation : division entière
Pour l’instant, on ne peut pas calculer la partie fractionnaire.
28/32
Exercices

1. Traduire (1100101)2 et (10101111)2 en écriture décimale.


2. Calculez la somme (1100101)2 + (10101111)2 .
3. Calculez le produit (10101111)2 × (1100101).
4. Calculez la soustraction (10101111)2 − (1100101)2 .
5. Vérifier tous les résultat en les traduisant en écriture décimale.

29/32
Représentation des nombres en
machine
Représentation des nombres en machine

Précision finie
I Codés généralement sur 16, 32 ou 64 bits.
I Un codage sur n bits permet de représenter 2n valeurs distinctes.

Un ordinateur ne calcule pas bien !


I Pour un ordinateur, le nombre de chiffres est fixé.
I Pour un mathématicien, le nombre de chiffres dépend de la valeur
représentée.
I Lorsque le résultat d’un calcul doit être représenté sur plus de
chiffres que ceux disponibles, il y a dépassement de capacité.

30/32
Représentation des entiers en machine

Entiers naturels
I Un codage sur n bits : tous les entiers entre 0 et 2n − 1.
I La conversion d’un nombre entier s’arrête toujours.
I On ne peut traiter x − y que si x ≥ y .

Entiers relatifs : plusieurs représentations existent.


Valeur absolue signée ; complément à 1 ; complément à 2.

Tous les processeurs actuels utilisent le complément à 2.


I il y a un seul code pour 0 ;
I l’addition de deux nombres se fait en additionnant leurs codes ;
I et il est très simple d’obtenir l’opposé d’un nombre.
I les processeurs disposent de fonctions spéciales pour l’implémenter.

31/32
Représentation des nombres réels

I Les ressources d’un ordinateur étant limitées, on représente


seulement un sous-ensemble F ⊂ R de cardinal fini.
I Les éléments de F sont appelés nombres à virgule flottante.
I Les propriétés de F sont différentes de celles de R.
I Généralement, un nombre réel x est tronqué par la machine,
définissant ainsi un nouveau nombre fl(x ) qui ne coïncide pas
forcément avec le nombre x original.
Problèmes et limitations
I les calculs sont nécessairement arrondis.
I il y a des erreurs d’arrondi et de précision
I On ne peut plus faire les opérations de façon transparente

> 0.1 + 0.1 + 0.1 == 0.3


[1] FALSE
> 10^20 + 1 = = 10^20
[1] TRUE
32/32
Questions?

Retrouvez ce cours sur le site web


www.i3s.unice.fr/~malapert/R

32/32

Vous aimerez peut-être aussi