Representer Des Entiers en Binaire
Representer Des Entiers en Binaire
Representer Des Entiers en Binaire
en binaire
• I, II, III, IV, V, VI, VII, VIII, IX, X, XI, XII, XIII, XIV…
2
Compter en base 10 (décimal)
• 10 symboles: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
• Comptons: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, …?
0 1 2 3 4 5 6 7 8 9
Remise à « 0 » et
retenue = 1
3
Compter en base 10 (décimal)
Valeur
1 x 103 + 4 x 102 + 2 x 101 + 3 x 100 = 1423
décimale
4
Compter en base 2 (binaire)
• 2 symboles: « 0 » et « 1 »
• Comptons: 0, 1, …?
0 1
Remise à « 0 » et
retenue = 1
5
Compter en base 2 (binaire)
Valeur
1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11
décimale
6
Compter en base 2 (binaire)
• Dans un nombre en base 2, chaque position
correspond à une puissance de 2
Représentation Position 3 Position 2 Position 1 Position 0
décimale 1 0 1 1
Valeur
1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11
décimale
7
(détour): compter en base 1
• 1 symbole: 1
• Comptons: (rien), 1, …
8
(détour): compter en base 1
Valeur
1 x 13 + 1 x 12 + 1 x 11 + 1 x 10 = 4
décimale
9
Récapitulation
• Pour représenter un nombre entier, nous sommes
familiers avec la notation décimale, mais plusieurs
options sont possibles.
• Il faut définir:
Base Symboles
1 1
2 0 et 1 (binaire)
10 0à9 (décimal)
10
Combien de nombres différents peut-on générer?
• Décimal
• 2 symboles?
• 3 symboles?
• Binaire
• 4 symboles (bits)?
• 8 symboles (bits)?
• 16 symboles (bits)?
11
Combien de nombres différents peut-on générer?
• Décimal
• 2 symboles? ➛ 00 à 99 = 102 = 100
• Binaire
• 4 symboles (bits)? ➛ 0000 à 1111 = 24 = 16
12
4 PHIR™
13
Image source
PHIR™ #1
• Dans un ordinateur, tout, absolument tout, est stocké en format binaire
• entiers naturels (strictement positifs): N
• entiers relatifs (positifs et négatifs): Z
• réels (avec précision limitée): R
• chaîne de caractères: Bonjour!
• images:
• vidéos
• Bref, tout!
14
image
PHIR™ #2
• Dans un ordinateur, on utilise un nombre fini de bits pour
représenter de l’information.
16
Bits vs octets
8 bits = 1 octet (byte)
17
Conventions d’écriture
• Comment différencier
• 1111 (binaire),
dans le cours nous
privilégierons le préfixe 0b
• et 1111 (décimal)?
18
Représentation des entiers
0, 1, 2, … … -2, -1, 0, 1, 2, …
19
Représentation des entiers
0, 1, 2, … … -2, -1, 0, 1, 2, …
20
En
tie
Conversion vers décimal
rs
no
n-
si
gn
és
• binaire ➙ décimal
• 0b10010101
Position 7 6 5 4 3 2 1 0
Bit 1 0 0 1 0 1 0 1
Valeur 128 64 32 16 8 4 2 1
= 128 0 0 16 0 4 0 1 = 149
21
En
tie
Conversion vers décimal
rs
no
n-
si
gn
és
• binaire ➙ décimal
• 0b10010101
Position 7 6 5 4 3 2 1 0
Bit 1 0 0 1 0 1 0 1
Valeur 128 64 32 16 8 4 2 1
= 128 0 0 16 0 4 0 1 = 149
• 0b11001011
22
En
tie
Conversion vers décimal
rs
no
n-
si
gn
és
• binaire ➙ décimal
• 0b10010101
Position 7 6 5 4 3 2 1 0
Bit 1 0 0 1 0 1 0 1
Valeur 128 64 32 16 8 4 2 1
= 128 0 0 16 0 4 0 1 = 149
• 0b11001011
Position 7 6 5 4 3 2 1 0
Bit 1 1 0 0 1 0 1 1
Valeur 128 64 32 16 8 4 2 1
=
23
En
tie
Conversion vers décimal
rs
no
n-
si
gn
és
• binaire ➙ décimal
• 0b10010101
Position 7 6 5 4 3 2 1 0
Bit 1 0 0 1 0 1 0 1
Valeur 128 64 32 16 8 4 2 1
= 128 0 0 16 0 4 0 1 = 149
• 0b11001011
Position 7 6 5 4 3 2 1 0
Bit 1 1 0 0 1 0 1 1
Valeur 128 64 32 16 8 4 2 1
= 128 64 0 0 8 0 2 1 = 203
24
En
tie
rs
Conversion: décimal ➙ binaire (approche 1)
no
n-
si
gn
és
• 10 = 0b?
10 2
-10 5 2
0 -4 2 2
1 -2 1
• 10 = 0b1010
25
En
Selon moi, cette approche est plus simple, mais utilisez votre préférée!
tie
rs
Conversion: décimal ➙ binaire (approche 2)
no
n-
si
gn
és
Position 7 6 5 4 3 2 1 0
Valeur 128 64 32 16 8 4 2 1
26
En
Selon moi, cette approche est plus simple, mais utilisez votre préférée!
tie
rs
Conversion: décimal ➙ binaire (approche 2)
no
n-
si
gn
és
Position 7 6 5 4 3 2 1 0
Valeur 128 64 32 16 8 4 2 1
Bits 0 0 0 0 1
• 0x4
Bits 0 0 0 0 1 0
no
n-
si
gn
és
Position 7 6 5 4 3 2 1 0
Valeur 128 64 32 16 8 4 2 1
28
En
tie
rs
Conversion: décimal ➙ binaire (approche 2)
no
n-
si
gn
és
Position 7 6 5 4 3 2 1 0
Valeur 128 64 32 16 8 4 2 1
Bits 1 0 0 1
• 0 x 8, 0 x 4, 1 x 2. Reste 1
Bits 1 0 0 1 0 0 1
• 1 x 1. Terminé!
Bits 1 0 0 1 0 0 1 1
29
Addition en binaire
30
Représentation des entiers
0, 1, 2, … … -2, -1, 0, 1, 2, …
31
Représentation des entiers
0, 1, 2, … … -2, -1, 0, 1, 2, …
32
En
tie
Nombres entiers signés
rs
si
gn
és
• Premier essai: représentation « signe et magnitude »
• Le premier bit (à gauche) est le signe: 0 = positif, 1 = négatif
33
En
tie
Nombres entiers signés
rs
si
gn
és
• Problèmes?
• Représentation de 0?
• 0 = 0000b = 1000b
• Opérations arithmétiques:
• -3 + 4 = 1011b + 0100b = 1111b = -7!
34
En
tie
Représentation « complément 2 »
rs
si
gn
és
• Seule différence: le premier bit représente –2N-1
« N » est le nombre de bits
• Exemple: 1101b = ?
• 1101b = -23 + 22 + 20 =-3.
35
En
tie
Représentation « complément 2 »
rs
si
gn
és
• Seule différence: le premier bit représente –2N-1
« N » est le nombre de bits
• Exemple: 1101b = ?
• 1101b = -23 + 22 + 20 =-3.
• plus direct (et plus facile): inverser tous les bits et ajouter 1.
36
En
tie
Représentation « complément 2 »
rs
si
gn
és
• Seule différence: le premier bit représente –2N-1
« N » est le nombre de bits
• Exemple: 1101b = ?
• 1101b = -23 + 22 + 20 =-3.
• plus direct (et plus facile): inverser tous les bits et ajouter 1.
• Exemple: 3 = 0011b. -3 = ?b
• Si on prend le complément + 1, on obtient: 1100b + 1b = 1101b.
37
En
tie
Représentation « complément 2 »
rs
si
gn
és
• Combien de nombres peut-on représenter?
38
En
tie
Représentation « complément 2 »
rs
si
gn
és
• Problèmes de tout à l’heure?
• Représentation de 0?
• 0000b seulement (maintenant, 1000b = -8d)
• Opérations arithmétiques:
• -3 + 4 = 1101b + 0100b = 0001b = 1 (ouf!)
39
En
tie
Représentation « complément 2 »
rs
si
gn
és
• Et la soustraction?
• En pratique, on peut soustraire avec une addition avec
l’inverse (en complément 2).
40
Nous utiliserons toujours le « complément 2 »
pour représenter les entiers signés.
41
Non-signé vs signé
• Non-signé
En
tie
rs
no
0b11001011
n-
•
si
g
né
s
Position 7 6 5 4 3 2 1 0
Bit 1 1 0 0 1 0 1 1
Valeur 128 64 32 16 8 4 2 1
= 128 64 0 0 8 0 2 1 = 203
• Signé (complément 2)
En
tie
• 0b11001011
rs
si
gn
és
Position 7 6 5 4 3 2 1 0
Bit 1 1 0 0 1 0 1 1
Valeur -128 64 32 16 8 4 2 1
= -128 64 0 0 8 0 2 1 = -53
42
Non-signé vs signé
Seule différence:
2N-1 -2N-1
Bit le plus significatif
(le plus à gauche)
43
Question (piège)
44
PHIR™ #3
• A priori, nous ne pouvons pas savoir ce qu’une
chaîne binaire signifie.
• Ex: quelle est la valeur décimale de 0b1010?
entier non-signé 10
entier signé -6
positifs ou négatifs
45
En
tie
Cas spécial 1: débordement (« overflow »)
rs
si
gn
és
• Quels nombres peut-on représenter sur 4 bits en
complément 2?
• -8 à +7
• on obtient -7!
46
En
tie
rs
Cas spécial 2: retenue (« carry »)
no
n-
si
gn
és
• Condition: s’il y a une retenue qui « dépasse » des bits les plus
significatifs
47