Chapitre 2 Cours D'informatique

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 119

AU 2022-2023

Université My Ismail
SMIA S1

Cours d’informatique I

10/10/2022
1
Chapitre II: Système de
numération et codage de
l’information

10/10/2022 2
Principe du codage de l’information

I. Définitions
• Les informations traitées par les ordinateurs sont de
différentes natures : Textes, nombres, images, vidéo,
sons, programmes,…

• Dans une machine une information (texte, sons,


nombre…) est représentée par une suite de 0 et de 1
(binary digit ou bit).

• Le codage : est le passage de la représentation


externe d’une information (Ex. 24, Bonjour) en une
représentation interne de la même information ( une
suite de 1 et de 0 ).
10/10/2022 3
I. Principe du codage de l’information

Capacité de Codage d’une machine:


La capacité de codage d’une machine est limitée:
◼ Avec 1 bit : on peut coder 2 objets différents (un objet
a pour code 0, l’autre objet b a pour code 1).

◼ Avec 2 bits : on peut coder 4 objets différents


correspondant aux combinaisons suivantes: 00, 01, 10
et 11.

◼ Avec n bits : on peut coder 2n objets différents

10/10/2022 4
II. Représentation des informations
2.1 Représentations externes (langage naturel ou humain)
On distingue plusieurs types dans la représentation externe:
❑ Représentation usuelle : base 10. les symboles utilisés
sont {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

❑ Représentation Octal : Base 8. les symboles utilisés sont


{0, 1, 2, 3, 4, 5, 6, 7}. Utilisée en informatique, et permet de
coder 3 bits par un seul symbole.

❑ Représentation Hexadécimal : Base 16. les symboles


utilisés sont {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}.
Utilisée en informatique, et permet de coder 4 bits par un
seul symbole.
❑ Représentations symboliques (a,b,c, !, ?...) : Code ASCII.
10/10/2022 Filières BGI Informatique I 5
II. Représentation des informations

2. 2 Représentations internes (représentation machine)


la représentation interne est une représentation binaire
qui utilise la base 2 ( un bit ). Un bit peut prendre deux
valeurs {0,1}.
Exemple :
(15)10 = (1111)2 ( base 2 )
= ( 1*23+1*22+1*21+1*20)10

10/10/2022 6
2.3 Base d’un système de numération

La base b est définie comme étant le nombre de


symboles différents utilisés pour représenter des
nombres dans un système de numération de base
b.

Le système décimal, par exemple, dispose de dix


symboles (appelés chiffres) notés 0, 1, 2, 3, 4, 5,
6, 7, 8, 9.

En décimal, b=10.

10/10/2022 7
2.4 Forme polynomiale

Tout nombre N peut être représenté dans un système de


numération de base b sous la forme suivante :

( N )b = a n b n
+ a n −1b n −1
+ + a 1b + a 0 b
1 0

avec 0  a i  b − 1
cette forme est appelée forme polynomiale
Soit l’écriture simplifiée :
( N )b = (an a 0 )b

Le nombre N est représenté comme une séquence de


symboles : an ……a0.

10/10/2022 8
2.4 Forme polynomiale

La notation ()b indique que le nombre est écrit en base b.

Le poids (rang) de ai est égal à i.

Par exemple, dans le système décimal, on écrit (154)10


pour représenter le nombre :
(154)10 = 1x102+ 5x101 + 4x100

9
10/10/2022
Pour le système décimal (b =10)
• Le système décimal est composé de dix symboles
(appelés chiffres): {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
• Un nombre décimal s'écrit comme une séquence de
chiffres : an ………… a0
• Le poids de chaque chiffre dépend de sa position dans le
nombre décimal considéré. Il est égal à l'exposant de la
base qui lui est associée dans la forme polynomiale du
nombre considéré N.
• Le chiffre de droite s'appelle le chiffre le moins significatif
(à poids faible), celui de gauche s'appelle le chiffre le plus
significatif (à poids fort).

10/10/2022 10
• La séquence ‘541’ et la séquence ‘145’ ne représentent
pas le même nombre décimal car les poids des chiffres
ne sont pas les mêmes.
• Selon la forme polynomiale, nous pouvons écrire :

n
N =  a i10i où a i  0,1, 2,3, 4,5, 6, 7,8,9
i =0
Exemple: (496)10 =4 x 102+9 x 101 + 6 x 100

o4 est le chiffre le plus significatif (poids : 2)


o6 est le chiffre le moins significatif (poids : 0)

10/10/2022 11
Pour le Système binaire (b = 2)
• C'est le système le plus utilisé en électronique numérique.
Il comprend deux symboles {0,1} appelés bits.
• Un nombre binaire s'écrit de la façon suivante :
N = (an a 0 )2 où a i  0,1

a0 est le bit le moins significatif (LSB: Low Significant Bit).


an est le bit le plus significatif (MSB: Most Significant Bit).

10/10/2022 12
Exemple : (101010)2 ; (10111)2

Selon la forme polynomiale, nous pouvons écrire :


n
N =  a i 2i où a i  0,1
i =0

Remarque :
oUn nombre binaire de 4 bit est appelé quartet. Exemple:
1010
oUn nombre binaire de 8 bit est appelé octet. Exemple:
10011110
oUn nombre binaire de 16 bit est appelé Mot.
Exemple : 1001111011101110
10/10/2022 13
Pour le système octal (b = 8)
• Ce système dispose de huit symboles : {0,1,2,3,4,5,6,7}.
• De la même manière, un nombre octal s'écrit:
N = (an a 0 )8 où a i  0,1, 2,3, 4,5, 6, 7

Exemple: (377)8 ; (255)8


Selon la forme polynomiale, nous pouvons écrire :
n
N =  a i 8i où a i  0,1, 2,3, 4,5, 6, 7
i =0

10/10/2022 14
Pour le système hexadécimal (b = 16)

• Ce système dispose de 16 symboles chiffrés de 0 à 9


plus les lettres majuscules A, B, C, D, E et F qui
correspondent aux valeurs allant de 10 à 15.
Un nombre hexadécimal s’écrit :
N = (an a 0 )16
où a i  0,1, 2,3, 4,5, 6, 7,8,9, A, B, C, D, E, F
Exemple : (1FF)16 ; (1A2C)16
Selon la forme polynomiale, un nombre hexadécimal
s’écrit :

10/10/2022 15
n
N =  a i16i où a i  0,1, 2,3, 4,5, 6, 7,8,9, A, B, C, D, E, F
i =0

Exemple : (12EC)16

➢Notation
Pour différencier les nombres binaires, décimaux et
hexadécimaux, on précise leur base en indice, en bas à
droite du nombre.

Exemples :
(100111)2 est un nombre …Binaire……… .
(10191)16 est un nombre …Hexadécimal.. .
(10981)10 est un nombre …Décimal..……. .
10/10/2022 16
III. Changement de base

3.1 Passage de la base 10 vers une base b

Pour passer de la base 10 vers une base b on utilise la


règle de divisions successives:
Pour obtenir l’expression en base b d'un nombre
exprimé en décimal, il suffit de diviser successivement
ce nombre par b jusqu'à ce que le quotient obtenu
soit égal à 0. Le nombre cherché est donné par les
restes successifs des divisions pris du bas vers le haut.

10/10/2022 17
3.1.1 Conversion décimale vers binaire :
Nous avons vu, d'après la forme polynomiale,
qu’un nombre binaire s'écrit :
n
N =  ai 2 i
où a i  0,1
i =0

Le problème revient donc à déterminer les valeurs


des bits ai. Pour cela, il existe deux méthodes.

10/10/2022 18
➢Première méthode: Méthode des divisons successives.

Il s'agit d’une répétition de divisions par 2 jusqu'à ce que le


quotient soit 0. Les restes des différentes divisions
correspondent aux bits ai à déterminer. On écrit le premier
reste à la position du bit le moins significatif (à droite) et le
dernier reste à la position du bit le plus significatif (à
gauche).

Exemple: Convertir le nombre décimal (125)10 en binaire.

10/10/2022 19
(125)10=?
Division Quotient Reste
125/2 62 1 a0
62/2 31 0 a1
31/2 15 1 a2
15/2 7 1 a3
7/2 3 1 a4
3/2 1 1 a5
1/2 0 1 a6

(125)10=(1111101)2

10/10/2022 20
➢Deuxième méthode : Méthode des soustractions
successives.
La plus grande puissance de 2 qui est inférieure ou
égale à N est soustraite à N.
Le processus de soustraction est répété sur le reste de la
différence, jusqu’à obtenir un résultat égale à 0.
On écrit N comme une somme de puissances entières de 2
depuis la plus grande apparaissant, dans l’ordre
décroissant des puissances.

Cette méthode nécessite la connaissance des différentes


puissances entières de 2.

10/10/2022 21
Exemple: Convertir le nombre décimal (36)10 en binaire
(36)10 =?
20=1, 21=2, 22=4, 23=8, 24=16, 25=32, 26=64
36 - 32 = 4 et 4 - 4 =0
(36)10 = 32 + 4 = 25 + 22

Notons que les termes 24, 23, 21, 20 sont absents. Nous en
concluons que

a4=a3=a1=a0=0. Donc (36)10 = (100100)2

10/10/2022 22
3.1.2 Conversion d'un nombre décimal en octal
De la même manière, par une suite de divisions
successives par 8, on convertit un nombre décimal en
octal.
Exemple: Convertir le nombre décimal (65)10 en octal

Division Quotient Reste


65/8 8 1 a0
8/8 1 0 a1
1/8 0 1 a2
(65)10 = (101)8

10/10/2022 23
3.1.3 Conversion d'un nombre décimal en hexadécimal
De la même manière, par une suite de divisions successives
par 16, on convertit un nombre décimal en hexadécimal.
Exemple: Convertir le nombre décimal (65)10 en
hexadécimal
Division Quotient Reste
65/16 4 1 a0
4/16 0 4 a1

(65)10 = (41)16
(65)10 = (1000001)2= (101)8 = (41)16

10/10/2022 24
Exemples :
Convertir (369)10 en base 2,en base 8 et en base 16.

MSB
MSB (Bit le plus significatif )

(369)10 = (r8r7r6r5r4r3r2r1r0)2 = (101110001)2

LSB LSB (Bit le moins significatif)


10/10/2022 25
Exemples (suite)

Base 8 Base 16
369 8 379 16
r0 = 1 46 8 11 23 16
r1 = 6 5 8 7 1 16
r2 = 5 0 1 0
(369)10 = (r2r1r0)8 = (561)8 (379)10 =(17B)16

10/10/2022
26
3.2 Passage de la base b vers une base 10

• L’équivalent décimal d'un nombre N écrit dans une base


b quelconque s'obtient par application directe de la
forme polynomiale:
n
N =  a i bi
i =0
règle de la somme des multiplication
3.2.1 Conversion d'un nombre binaire en décimal :
❖Utiliser l’écriture polynomiale avec b=2
❖Multiplier chaque binaire par la puissance de 2
correspondant à son poids
❖Faire la somme des produits obtenus

10/10/2022 27
Exemple : convertir les nombres suivants en leur
équivalent décimal
(10111)2 (11111)2 (11010)2

(10111)2 = 1 x 24+0 x 23 + 1 x 22 + 1 x 21 + 1 x 20
= 1 x 16+ 0 x 8 +1 x 4 + 1 x 2 + 1 x 1
= 16 + 0 + 4+ 2 +1
= (23)10
(11111)2 = (31)10
(11010) 2= (26)10

10/10/2022 28
3.2.2 Conversion d'un nombre octal en décimal :
utiliser l’écriture polynomiale avec b=8
Exemple: (2145)8 (27)8 (134)8

(2145)8 = 2x 83+1 x 82 + 4 x 81 + 5 x 80
= 2 x 512+1x 64 +4 x 8 + 5 x 1
= 1024+64 +32 + 5
= (1125)10
(27)8= (23)10
(134)8= (92)10
(144)8 =(100)10
(200)8 =(128)10
10/10/2022 29
3. 2.3 Conversion d'un nombre hexadécimal en décimal
utiliser l’écriture polynomiale avec b=16

Exemple: (1FF)16 (1D)16 (14)16

(1FF)16 = 1 x 162 + F x 161 + F x 160


= 1 x 256+15 x 16 + 15 x 1
= 256+240 + 15
= (511)10
(1D)16= (29)10
(14)16= (20)10

10/10/2022 30
Exemples de passage d’une base b vers la base 10
Dans un nombre binaire, la valeur d'un bit dépend de sa position en partant de la
droite. Comme pour les dizaines, les centaines et les milliers pour un nombre
décimal, le poids d'un chiffre croît d'une puissance de 2 en allant de la droite vers
la gauche et en commençant par 0.

Nombre 1 1 1 1
position 3 2 1 0
valeur 23 = 8 22 = 4 21 = 2 20 = 1

Convertir en décimal (1010)2 , (142)8 et ( A9F)16

(1010)2 = (1*23+0*22+1*21+0*20) = (10)10

(142)8 = (1*82+4*81+2*80) = (98)10

(A9F)16 = (10*162+9*161+15*160) = (2719)10


10/10/2022 31
3.3 Conversion binaire vers octal

• On passe facilement du binaire à l'octal en groupant les


bits par blocs de trois en allant vers la gauche puis on
fait correspondre à chaque bloc son équivalent décimal.
Exemple:
(10011011110)2 = (2336)8

• Le tableau suivant donne la correspondance entre les


chiffres octaux allant de 0 à 7 et leur équivalent binaire
sur 3 bits :

10/10/2022 32
Tableau de correspondance Octal\Binaire

Octal Binaire
2 22 12 0
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
10/10/2022 33
Exemple: Convertir les nombres binaires suivants en octal
:
a) (100111010001)2 ; b) (101110011101)2; c) (10111)2

Comme il y a un rapport de puissance entre la base


binaire et l’octal (8=23), il suffit de coder chaque nombre
octal sur trois bits pour passer en binaire.

a) (100 111 010 001)2 = (4721)8

b) (101 110 011 101)2 = (5635)8

c) (10 1 11)2 = (27)8


10/10/2022 34
3.4. Conversion octal vers binaire
Pour cela, il suffit de replacer chaque chiffre du nombre
octal par son équivalent binaire sur 3 bits ( en
complétant éventuellement par des zéros).
Exemple 1:
(527)8 = (101010111)2

Exemple 2: Convertir les nombres octals suivants en


binaires: (402)8 ; (345)8

(402)8 = (100 000 010)2

(345)8=(011 100 101)2


10/10/2022 35
3.5. Conversion binaire vers hexadécimal

On passe du binaire à l'hexadécimal en groupant les bits


par blocs de quatre en allant vers la gauche puis on fait
correspondre à chaque bloc son équivalent hexadécimal.

Exemple :
(10011011110)2 = (10011011110)2 = (4 DE)16

Le tableau suivant expose la correspondance entre les


caractères hexadécimaux allant de 0 à F et leur équivalent
binaire sur 4 bits :

10/10/2022 36
Tableau de correspondance Hexadécimal\Binaire
Hexadécimal Binaire
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
10/10/2022 F 1111 37
Exemple : Convertir les nombres binaires suivants en
hexadécimal :

a) (110011010001)2 ; b) (101011001101)2

a) (1100 1101 0001)2 = (CD1)16

b) (1010 1100 1101)2 = (ACD)16

10/10/2022 38
3.6. Conversion hexadécimal vers binaire
Cela consiste à remplacer à chaque caractère du nombre
hexadécimal par son équivalent binaire sur 4 bits ( en
complétant éventuellement par des zéros).
Exemple 1
(B5F3)16 = (1011010111110011)2

Exemple 2 : (1FA2)16 = (0001 1111 1010 0010)2

(345B)16=(0011 0100 0101 1011)2

10/10/2022 39
3.7. Conversion octal vers hexadécimal et vice versa

Il n’existe pas de méthode directe pour convertir un


nombre octal en un autre nombre hexadécimal et vice
versa.

Donc: Soit on utilise la base intermédiaire 10 ou la base


intermédiaire 2 (la plus rapide)

10/10/2022 40
Exemple: (54)8=(2C)16 ; (4D)16=(115)8
(578)8
(55)8=(125)16 (3A)16=(72)8
10/10/2022 41
Exercice

Décimal Binaire Octal Hexadécimal

10

01100100

065

A74

10/10/2022 42
Exercice

Décimal Binaire Octal Hexadécimal


1010 12 A

10
100 144 64

01100100
53 110101 35

065
2676 101001110100 5164

A74

10/10/2022 43
4. Codage des informations
Les informations traitées par les ordinateurs peuvent être:
des nombres,
du texte, des images, du son…
4. 1 Codage des informations numériques
Dans le codage numérique on distingue trois type:
▪ le codage des entiers naturels
▪ Le codage des entiers relatifs
▪ Le codage des réels.

4.1. 1 Représentation des entier naturels:


Pour coder les entiers naturels ( positif ou nul) on utilise le
code binaire pur
44
10/10/2022
4. Codage des informations

Pour coder les entiers naturels ( positif ou nul) on utilise le


code binaire pur
▪ Avec 1 bit on peut coder que 0 et 1 càd de 0 à (21-1)
▪ Avec 4 bits on peut coder de 0 à 15 càd de 0 à (24-1)
▪ Avec un octet ( 8 bits) on peut coder de 0 à 255 (28-1)
▪ Avec n bits on peut coder de de 0 à 2n-1.
Exemple :
Sur un octet ( 8 bits) (15)10 = (00001111)2

45
10/10/2022
Codage des informations.

4. 1.2. Représentation des entiers relatifs :


Il existe au moins trois façons pour coder les entiers relatifs

• Code binaire signé (par signe et valeur absolue)

• Code binaire complément à 1.

• Code binaire complément à 2.

46
10/10/2022
Codage des informations.
4. 1. 2. 1 Code binaire signé
Dans ce code on introduit la notion du signe. Le bit le
plus significatif MSB est utilisé pour représenter le
signe du nombre :
si le MSB = 0 alors le nombre est positif
si le MSB = 1 alors le nombre est négatif.
Autrement si on travail sur n bits , alors le bit du poids
fort ou dite le plus significatif MSB est utilisé pour
indiquer le signe . Les autres bits n-1 désignent la
valeur absolue du nombre.

S Valeur absolue

47
10/10/2022
4. Codage des informations.
4.1. 2. 1 Code binaire signé
Exemple :
sur un octet (8 bits), représenter (-24)10 ,(-5),(13) ,(-128)10 en binaire
signé
(-24)10 = (10011000 )bs ; (+13)10= (00001101)bs ; (-5)10 = (10000101)bs
(-128)10 hors limite → nécessite 9 bits au minimum.
Inconvénient : 0+= 00000000 deux représentations
0 -= 10000000 pour 0
❖Le zéro possède deux représentations +0 et -0 ce qui conduit à des
difficultés au niveau des opérations arithmétiques.
❖encore sur 4bits +0=0000)bs -0=1000)bs
❖multiplication et addition sont moins évidentes.
Étendu de codage : Avec n bits on peut coder les nombres entre
( - 2n-1+1 ) et ( 2n-1-1 ).
48
10/10/2022
4. Codage des informations.
4.1. 2. 1 Code binaire signé
Exemples:
▪ Coder 100 et -100 en binaire signé sur 8 bits.
100)10=01100100)bs
-100)10=11100100)bs
▪ Décoder en décimal (11000111)bs et (00001111)bs:
(11000111)bs=-71)10
(00001111)bs= +15)10

▪ Calculer 1-2 en binaire signé sur 8bits.

49
10/10/2022
Etendu de codage Binaire signé
Sur 3 bits on obtient :
signe VA valeur
0 00 +0
0 01 +1
0 10 +2
0 11 +3
1 00 -0
1 01 -1
1 10 -2
1 11 -3

Si on travail sur n bits , l’intervalle des valeurs représentables en


binaire signé :
-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 )
10/10/2022 50
4. Codage des informations.
4. 1. 2. 2 Code binaire Complément à 1

Appelé Complément Logique (CL) ou Complément Restreint


(CR) :
Pour coder un nombre en binaire complément à 1 il faut
d’abord le coder en binaire signé et puis:
➢Les entiers positifs sont codés comme en binaire pure.
➢Les entiers négatifs sont codés en inversant chaque bit de
la représentation de sa valeur absolue (pas le bit du signe)
c’est-à-dire le 1 devient 0 et le 0 devient 1.
➢Le bit MSB est utilisé pour représenter le signe.
▪ Si le bit le MSB =1 alors le nombre négatif
▪ Si le bit le MSB =0 alors le nombre positif

10/10/2022 51
Codage des informations.
4.1. 2. 2 Code binaire Complément à 1

Inconvénients:
▪ Deux codages différents pour le 0 ( +0 et -0):
Sur 8 bits +0=00000000)cà1 -0=11111111)cà1
▪ Multiplication et addition sont moins évidentes.

10/10/2022 52
Codage des informations.
4.1. 2. 2 Code binaire Complément à 1
Exemples :
▪ Coder 100 et -100 par complément à 1 sur 8 bits:
100)10=01100100)cà1
-100)10=10011011)cà1
▪ Décoder en décimal (11000111)cà1 et (00001111)cà1:
(11000111)cà1=-56)10
(00001111)cà1= +15)10

▪ Calculer 1-2 en cà1 sur 8bits.

10/10/2022 53
IV- Codage des informations.
Etendu de code complément à 1
Si on travail sur 3 bits : Valeur en CA1 Valeur décimale

000 +0
001 +1
010 +2
011 +3
100 -3
101 -2
110 -1
111 -0

Si on travail sur n bits , l’intervalle des valeurs représentables en


binaire signé :
-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 )

10/10/2022 54
4. Codage des informations.

4. 1. 2. 3 Code complément à 2
Appelé Complément Arithmétique (CA) ou Complément Vrai (CV):
✓Les nombres positifs sont codés de la même façon qu’en binaire
pure.
✓Un nombre négatif est codé en ajoutant 1 à son complément à
1.
✓Le bit le plus significatif est utilise pour représenter le signe du
nombre.
Exemple 1: -24 en complément à 2 sur bits
Exemple 2 : sur 8 bits, représenter + 16 et –16 en
24 est codé par (00011000)bp complément à 2.
-24 (11100111)cà1+16 est codé par 00010000
- 16 est codé par 10010000 en binaire signé
-24 est codé par (11101000)cà2 - 16 est codé par 11101111 en complément à 1
- 16 est codé par 11110000 en complément à 2
10/10/2022 55
4. Codage des informations.

4. 1. 2. 3 Code complément à 2
Avantage:
Un seul codage pour 0, par exemple sur 8 bits
+0 est codé sur 00000000)cà2
-0 est codé sur 11111111)cà1
Donc -0 sera représenté par 00000000
Etendu de codage:
Sur un octet, on peut coder entre -128 et +127:
+0=00000000 -0=00000000
+1=00000001 -1=11111111
…….. …….
+127=01111111 -128=10000000
10/10/2022 56
IV- Codage des informations.
Etendu de code complément à 2
• Si on travail sur 3 bits : Valeur en CA2 Valeur décimale
000 +0
001 +1
Les valeurs sont comprises
010 +2
entre -4 et +3 011 +3
-4 ≤ N ≤ +3 100 -4
- 4 ≤ N ≤ + (4 -1 ) 101 -3
- 22 ≤ N ≤ +(22-1 ) 110 -2
-2 (3 -1) ≤ N ≤ (2 (3 -1) -1 ) 111 -1

Si on travail sur n bits , l’intervalle des valeurs représentable en


CA2 :est:
-(2 (n -1)) ≤ N ≤ +(2 (n -1) -1 )
10/10/2022 57
IV- Codage des informations.
Etendu de code complément à 2
Exemples

▪ Coder 100 et -100 par complément à 2 sur 8 bits:


100)10=01100100)cà2
-100)10=10011010)cà2
▪ Décoder en décimal (11000111)cà2 et (00001111)cà2:
(11000111)cà2=-55)10
(00001111)cà2= +109)10

▪ Calculer 1-2 en cà2 sur 8bits.

10/10/2022 58
Codage des informations.
Remarque
0+ = 00000000 Binaire signé
0 -= 10000000
+
1 11111111 C à 1
00000001 C à 2
00000000
• Alors en complément à 2, on a une seule représentation de 0.
Avec 8 bits on peut coder les nombres entres – 128 (-2n-1) et
127 (2n-1-1).
(- 128)10 est représenté en C à 2 (par convention) par 10000000,
c’est la combinaison restante.
• La représentation en complément à deux
(complément à vrai) est la représentation la plus
utilisée pour la représentation des nombres négatifs
dans la machine.
10/10/2022 59
4. Codage des informations.
4. 1. 3. Codage des réels (nombres fractionnaires)
Un nombre fractionnaire est un nombre composé de deux parties :
la partie entière et la partie fractionnaire.
N = (anan-1…a1a0,a-1a-2…a-m)b
Le codage des réels s’agit de représenter sur machine des réels
Ayant une partie fractionnelle (Mais pas tous les réels) : Car on ne
peut pas toujours obtenir une conversion en un nombre fini de
chiffres pour la partie fractionnaire.
Exemple : 3.125 105, 0.2541…, 9.1254, 13,125, (1101,101)2
(75,14)8 , (F,7)16
Il existe deux représentations :
➢ Codage en virgule fixe
➢Codage en virgule flottante
60
10/10/2022
4. Codage des réels (nombres fractionnaires)
4.1.3.1 Codage en virgule fixe
✓Utilisation de codage binaire.
✓On code la partie entière sur p bits
✓Et la partie fractionnaire sur q bits.

MSB 2xxxxxxx.xxxxxx
p-1 LSB
20,2-1 2-q

✓Pour le codage de la partie entière on utilise le principe


des divisions successives par 2.
✓Pour le codage de la partie fractionnaire on utilise le
principe des multiplications successives par 2.
10/10/2022 61
4. Codage des réels (nombres fractionnaires)
Conversion d'un nombre décimal réel en base b.
• Pour la partie entière
• Utiliser la méthode de la division entière comme pour les
entiers
▪ Pour la partie fractionnaire
• Multiplier la partie fractionnaire par b
• Noter la partie entière obtenue
• Recommencer cette opération avec la partie fractionnaire
du résultat et ainsi de suite
• Arrêter quand la partie fractionnaire est nulle
• Ou quand la précision souhaitée est atteinte

10/10/2022 62
Conversion d'un nombre décimal réel en base b.
Exemple 1: Convertir le nombre 12,6875 en binaire
Conversion de 12 donne (1100)2
Conversion de 0,6875
0,6875 x 2 = 1,375 = 1 + 0,375
0,375 x 2 = 0,75 = 0 + 0,75
0,75 x 2 = 1,5 = 1 + 0,5
0,5 x 2 = 1 = 1 + 0

(12,6875)10 = (1100,1011)2
10/10/2022 63
Conversion d'un nombre décimal réel en base b.

Exemple 2 : Convertir le nombre 5,125 en binaire

(5.125)10 en base 2 ?

(5 )10 = (101)2
0.125 * 2 = 0.25 = 0 + 0.25
0.25 * 2 = 0.50= 0 + 0.5
0.5 * 2 = 1.0 = 1 + 0.0 arrêt
On lit de haut en bas : (0.125)10 = (0.001)2
donc (5.125)10 = (101.001)2

10/10/2022 64
64
Conversion d'un nombre décimal réel en base b.
Exemple 3 : Convertir le nombre 13,25 en octal
Conversion de 13: donne (15)8

Conversion de 0,25

0,25x8=2

(13,25)10=(15,2)8

10/10/2022 65
Conversion d'un nombre décimal réel en base b.

Exemple 3 : Convertir le nombre 171,3046875 en


hexadécimal
Conversion de 171 : donne (AB)16

Conversion de 0,3046875
0,3046875 x 16 = 4,875 = 4 + 0,875
0,875 x 16 = 14,0 = 14 + 0
(171,3046875)10 = (AB,4E)16

10/10/2022 66
Conversion réel base B en décimal
La valeur en décimal d'un tel nombre est alors donnée par
le calcul de
an bn + an-1 bn-1 + ... +a1 b1 + a0 b0+ a-1 b-1 +
a-2 b-2 + ...+ a-m+1 b-m+1 + a-m b-m

Exemple:
Convertir les nombres suivants en décimal :

a) 123,45 b) (101,101)2 c) (AB,4E)16

10/10/2022 67
a) (101,101)2 = 1 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1
+ 0 x 2-2 + 1 x 2-3
= 4 + 1 + 0,5 + 0,125
= 5,625
b) (76,4)8 =7 x 81 + 6 x 80 + 4 x 8-1
= 56 + 6 + 0,5
= 62,5
c) (AB,4E)16 = 10 x 161 + 11 x 160 + 4 x 16-1 + 14 x 16-2
= 160 + 11 + 4 x 0,0625 + 14 x 0,00390625
= 171,3046875

10/10/2022 68
10/10/2022 69
4.1.3.2 Codage en virgule flottante
Les nombres réels à virgule flottante peuvent être présenter par
l’expression suivante:
x = ± M . 2E

Ou M appelé mantisse (virgule fixe) et E l’exposant (signé)


Le codage en base 2, format virgule flottante, revient à coder le
signe, la mantisse et l’exposant.

Exemple : Codage en base 2 , format virgule flottante, de 3,25

3,25=11,01)2 (en virgule fixe)


=(1,101. 21)2
=(110,1. 2-1)2
Problème: différentes manières de représenter la mantisse M et
l’exposant E, par conséquence il faut pensé à une NORMALISATION
70
10/10/2022
Codage en virgule flottante NORMALISEE
Les nombres réels à virgule flottante NORMALISEE peuvent être
présenter par l’expression suivante:
x = ± 1, M . 2Eb

Le signe est codé sur un bit ayant le poids fort:


▪ Le signe - : bit 1
▪ Le signe +: bit 0
Exposent biaisé (Eb)
▪ Placé avant la mantisse pour simplifier la comparaison
▪ Codé sur p bits et biaisé pour être positif ( ajout de 2p-1-1)
Mantisse normalisée (M)
▪ Normalisé:: virgule est placé après le bit à 1 ayant le poids fort
▪ M est codé sur q bits
Exemple : 111,01 1,1101 donc M =1101

10/10/2022 71
Codage en virgule flottante ( Norme IEEE 754)
La norme IEEE 754 permet de représenter des nombres à virgule (i.e.
des nombres réels).
Ces nombres sont importants dans les ordinateurs puisqu’ils
permettent de faire du calcul scientifique, de la comptabilité, de la
gestion…
Il est donc nécessaire de trouver un moyen de les représenter dans
les ordinateurs. On représente généralement ces nombres au moyen
des symboles suivants :

- Chiffres « 0 1 2 3 4 5 6 7 8 9 »

- Virgule « , »

72
10/10/2022
Codage en virgule flottante ( Norme IEEE 754)

Or, dans un ordinateur, on ne peut utiliser que 2 symboles : « 0 1 ».

Le problème de l’encodage (représenter une information sous forme


de 0 et de 1) est considéré comme résolu pour les nombres entiers .

Le codage binaire est suffisant pour n’importe quel nombre entier


(positif ou négatif), Mais ne permet pas de représenter des nombres à
virgule.

La norme IEEE-754 dérive du binaire et propose une « convention »


Pour représenter la virgule.

10/10/2022 73
Codage en virgule flottante ( Norme IEEE 754)
Nombres à virgule en binaire

En décimal :
0,1 est une autre notation pour 10-1
1,305 peut aussi s’écrire
1*100 + 3*10-1 + 0*10-2 + 5*10-3
En binaire :
0,1 est une autre notation pour 2-1
11,101 peut aussi s’écrire
1*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3 = 2 + 1 + 1/2 + 0 + 1/8

Si l’on fait le calcul, (11,101)2 vaut donc en décimal (3,625)10

74
10/10/2022
74
4. Codage en virgule flottante ( Norme IEEE 754)
Histoire de l’IEEE754
Maintenant, on sait coder les nombres à virgule en binaire.
Mais si je vous donne le nombre (11010,001101)2, vous ne
pouvez toujours pas le faire rentrer dans votre ordinateur…
Que feriez-vous de la virgule ?
Le standard IEEE 754 (Institute of Electronic and Electrical
Engineers) de simple précision est le suivant :
1. le premier bit (s) est le signe du nombre
2. Ensuite 8 bits représentant e, l'exposant en code excédant
127.
3. Les 23 bits suivants représentent la partie fractionnaire f de
la mantisse normalisée. Il s’agit d’une mantisse normalisée
m de la forme
m = 1,f telle que 1 <= m < 2.

75
10/10/2022
4. Codage en virgule flottante ( Norme IEEE 754)

Comme le premier bit d'une telle mantisse normalisée est


toujours 1, on n'a pas besoin de l'écrire, ce qui permet de
gagner un bit et d'atteindre une précision de 24 bits. Cette
représentation nécessite donc un total de 32 bits, soit 4 octets.

La valeur du nombre est donc donnée par l’expression :

N = (-1)s x ( 1,M ) x 2(Eb)

où s est le signe , M est la mantisse, et Eb est le biaisé tel qu’inscrit dans


le format suivant :

76
10/10/2022
4. Codage en virgule flottante ( Norme IEEE 754)
Les différentes précisions de l’IEEE754
Nous l’avons vu, la précision des nombres que l’on peut coder
dépend du nombre de bits que l’on met dans l’exposant et
dans la mantisse. La norme IEEE754 définit 3 formats de
précisions. Les deux les plus courants sont :
Simple précision : 8 bits pour l’exposant (excès de 127)
et 23 bits de mantisse

- Double précision : 11 bits pour l’exposant (excès de


1023) et 52 bits de mantisse

77
10/10/2022
77
4. Codage en virgule flottante ( Norme IEEE 754)
Encodage en IEEE754 par l’exemple
Essayons d’encoder le nombre +16,5 en simple précision.
1) Encoder en binaire le nombre à virgule
16,5 = (10000,1)2
2) Transformer en notation scientifique (souvenez-vous que décaler la
virgule revient à multiplier/diviser par 2) (normalisation)
(10000,1)2 = (1,00001*24)2
3) Identifier les champs
signe = 0 (positif)
exposant = 4 et exposant interne( biaisé)= 4 + 127 = 131
mantisse sur 23 bits= 00001000000000000000000 (on ne prend pas le
1,)
4) Encoder l’exposant
4 doit être codé sur 8 bits par excès de 127 => on encode
131 = (1000 0011)2
78
10/10/2022
4. Codage en virgule flottante ( Norme IEEE 754)
5) Résultat final
(On écrit tous les 0 à la fin de la mantisse pour faire 32 bits au total)
0 10000011 00001000…

Regroupage des bits par 4

0100 0001 1000 0100 0000 0000 0000 0000

En Héxa (ne pas oublier les 0 à la fin pour faire 32 bits)

41840000

QUESTION: convertir le nombre 3,5 en virgule flottante simple précision


suivant la norme IEEE754

79
10/10/2022
4. Codage en virgule flottante ( Norme IEEE 754)

QUESTION: convertir le nombre 3,5 en virgule flottante simple précision suivant


la norme IEEE754

1) Encoder en binaire le nombre à virgule


+ 3,5 = (11,1)2

2) Transformer en notation scientifique (souvenez-vous que décaler la virgule revient


à multiplier/diviser par 2) (normalisation)
(11,1)2 = (1,11x21)2
3) Identifier les champs
signe = 0 (positif)
exposant = 1 et exposant interne( biaisé)=1 +127=128
mantisse sur 23 bits= 11000000000000000000000 (on ne prend pas le 1,)
4) Encoder l’exposant
4 doit être codé sur 8 bits par excès de 127 => on encode
128 = (1000 0000)2

80
10/10/2022
4. Codage en virgule flottante ( Norme IEEE 754)

5) Résultat final
(En contrôle, écrire tous les 0 à la fin pour faire 32 bits)
(0 10000000 1100000000000000000000)IEEE

Regroupage des bits par 4

0100 0000 0110 0000 0000 0000 0000

En Héxa (ne pas oublier les 0 à la fin pour faire 32 bits)

40 60 00 00

81
10/10/2022
10/10/2022 82
10/10/2022 83
Donnez la représentation flottante en double précision des nombres:
1; -64; 12,06640625

1)
Pour le nombre 1
S=0
1=1)2
1=(1,0)20
M=0000…00 et E=0
Eb=E+1023=1023
1023=01111111111
Finalement
1 → 0 011111111110000..00
Pour le nombre
-64/

10/10/2022 84
Caractéristiques des nombres flottants au standard IEEE

10/10/2022 85
Exercices d’application
Conversion en virgule flottante IEEE 754 (32 bits)
1. Quelle est la valeur décimale des représentations
binaires suivantes :
a. 1 10000010 11110110000000000000000
b. 01000000111100000000000000000000
c. 11000010000011100000000000000000
d. 0 10000010 11000000000000000000000
2. Quelle est la représentation binaire de chaque nombre
décimale suivants :
a. 3.15
b. -123.75
c. 6.125
10/10/2022 86
Exercices d’application
a. le 1ère bit est 1 donc le nombre est négatif.
Les 8 bits suivants 10000010 =130=Eb, donc
E =Eb-127=3.
3. La mantisse M = 11110110000…0.
Finalement le nombre est
-1,11110110 * 2 3= -1111,10110
= -15,6875

b. le 1ère bit est 0 donc le nombre est positif.


Les 8 bits suivants 10000001 =129=Eb, donc
E=Eb-127=2.
La mantisse M = 1110000…0.
Finalement le nombre est
1,1110 * 22 = 111,10
= 7,5
10/10/2022 87
Exercices d’application
c. le 1 ère bit est 1 donc le nombre est négatif.
Les 8 bits suivants 10000100 =132 =Eb, donc
E=Eb-127=5.
La mantisse M = 0001110000…0.
Finalement le nombre est
-1,0001110 * 25 = -100011,10
= -35,5

d. le1 ère bit est 0 donc le nombre est positif.


Les 8 bits suivants 10000010 =130=Eb, donc
E =Eb-127=3.
La mantisse M = 110000…0.
Finalement le nombre est
1,110 * 23= 1110
= 14,0
10/10/2022 88
Exercices d’application
a. 3,15 = 11,0010011001100110011001 car 3=11)2
0,15*2=0,3 =0+0,3
0,3*2=0+ 0,6
0,6*2=1,2= 1+ 0,2
……..
3,15=1,10010011001100110011001* 21
Donc Eb= 127+1 = 128 = 10000000
finalement le codage de 3,15 est
1 10000000 10010011001100110011001.

b. -123,75 = 1111011,11
-123,75 = -1,11101111 * 26
Donc Eb=127+6=133=10000101
Finalement le codage de -123,75 est
1 10000101 1110111100…0.
10/10/2022 89
Exercices d’application

c. 6,125 = 110,001 =1,10001 22


Donc Eb = 127+2 = 129 = 10000001
Finalement le codage de 6,125 est
0 10000001 1000100…0.

10/10/2022 90
10/10/2022 91
Système BCD : Binary coded decimal
Le Décimal codé binaire DCB ( Binary coded decimal Ou BCD en
anglais) est uns système de numération utilisé en électronique et en
informatique pour coder des nombres en se rapprochant de la
représentation humaine usuelle, en base 10.
Ce code conserve les avantages du système binaire naturel et du
système décimal. Chaque chiffre du code décimal est représenté par
un quartet binaire ( codé sur quatre bits).
0 1 2 3 4 5 6 7 8 9
0000 0001 0010 0011 0100 010 011 011 1000 1001
1 0 1

Pour coder le nombre 128, il suffit de coder chacun des chiffres 1, 2


et 8 séparément, et on obtient la valeur 0001 0010 1000

10/10/2022 92
Système BCD : Binary coded decimal
Remarque: Puisque on compte en base 10 la valeur la plus élevée
dans un quartet est 910= (1001)2
Exemple: Le chiffre 857 sera donc représenté par :

Donc (857)10= (1000 0101 0111)BCD


Attention : (10)10 = (1010)2 = (0001 0000)BCD
10/10/2022 93
4. 2. Calculs Binaire
◼ Décalage:
◼ A gauche d’un bit correspond à une multiplication par
2 en décimal
(1001)2 = (9)10 (10010)2 = (18)10

◼ A droite d’un bit correspond à une division par


2 en décimal
(1001)2 = (9)10 (100,1)2 = (4,5)10
◼ Addition: 0+0 = 0, 1+0 = 1, 1+1 = 0 et un report de 1
◼ Soustraction: 0-0 = 0, 1-0 = 1, 1-1 = 0, 0-1 = 1 et un report
de 1, 1+1+1= 1 et un report de 1
◼ Multiplication:
10/10/2022
0*0 = 0, 1*0 = 0, 1*1 =1 94
4. 2. 1 Addition et soustraction en Complément à 2
Exemple 1: Effectuer les opérations suivantes sur 5 Bits , en
utilisant la représentation en CA2

0 1 0 0 1
0 1 0 0 1 +
+ +9
+9 1 1 1 0 0
0 0 1 0 0 -4
+4
+5
+ 13 1 0 0 1 0 1
0 1 1 0 1

Le résultat est positif Report

(01101)2= ( 13)10
Le résultat est positif
(00101)2= ( 5)10

10/10/2022 95
4.2. 1 Addition et soustraction en Complément à 2
1 0 1 1 1 1 0 1 1 1
-9 + -9 +
1 1 1 0 0 0 1 0 0 1
-4 +9
- 13 +0
1 1 0 0 1 1 1 0 0 0 0 0

Report Report

Le résultat est négatif :


Résultat = - CA2 (10011)= -( 01101) Le résultat est positif

= - 13 (00000)2= ( 0)10

10/10/2022 96
Cas de débordement

0 1 1 0
0 1 0 0 1 1 0 1 1 1
+9 + +
-9
0 1 0 0 0 1 1 0 0 0
+8 -8
+ 17 1 0 0 0 1 - 17
0 1 1 1 1

Négatif
Positif

•Nous avons un débordement si la somme de deux nombres positifs


donne un nombre négatif .
•Ou la somme de deux nombres négatifs donne un Nombre positif
•Il y a jamais un débordement si les deux nombres sont de signes
différents.
10/10/2022 97
4.2. 1 Addition et soustraction en Complément à 2
Exemples 2 :
+6 +6 -6 -6
+4 -4 +4 -4
10 2 -2 -10

00000110 (+6) 00000110 (+6) 11111010 (-6) 11111010 (-6)


00000100 (+4) 11111100 (-4) 00000100 (+4) 11111100 (-4)
00001010 (+10) 1 00000010 (+2) 11111110 (-2) 1 11110110 (-10)
report report
Remarque : Les résultats sont exacts en ignorants les reports.
Faisons :
a) - 64 11000000 b) + 64 01000000
- 65 10111111 + 65 01000001
-129 +129
01111111 +127 faux 10000001 -127 faux
1
10/10/2022
C7 C0 98
4. 2.2 Définitions du débordement
◼ Le débordement dans le cas d’une addition de deux
nombres négatifs est une retenue de la colonne 7 vers
l’extérieur sans retenue de la colonne 6 vers la colonne 7
(cas a).
◼ Le débordement (dépassement de capacité) dans le cas
d’une addition de deux nombres positifs est une retenue
de la colonne 6 vers la colonne 7 sans retenue vers
l’extérieur (cas b).
3. 2. 3 La retenue et le débordement
▪ On dit qu’il y a une retenue si une opération
arithmétique génère un report .

99
10/10/2022
4. 2. 3 La retenue et le débordement

▪ On dit qu’il y a un débordement (Over Flow ) ou


dépassement de capacité: si le résultat de l’opération
sur n bits est faux .
 Le nombre de bits utilisés est insuffisant pour
contenir le résultat
 Autrement dit le résultat dépasse l’intervalle des
valeurs sur les n bits utilisés.
Exercices :
faites en C à 2, sur un octet, les sommes suivantes :
(-125) + (102), (-92) + (-50), (70) + (65) et (45) + (23)

10/10/2022 100
Applications

Exercices : On considère ces opérations écrites en base 10 :


a) – 61 – 44
b) – 61 – 72
c) 99 – 35
d) 99 + 35
On dispose d’une machine travaillant sur des nombres
binaires de longueur 8 (8 bits). Faire manuellement ce que
l’additionneur de la machine ferait automatiquement, et
donner les résultats obtenus en binaire. Eventuellement, en
cas d’erreur, indiquer pourquoi.

10/10/2022 101
Applications
On commence par écrire les nombres positifs en base 2 sur 8
bits, en procédant avec des divisions par 2 successives. A
partir de là si l’on veut le nombre avec un signe moins, on
prend le complément et l’on ajoute 1. Puis on additionne les
nombres concernés.

a) 61 = 00111101 – 61 = 11000011
44 = 00101100 – 44 = 11010100
Par addition :
11000011
+11010100
110010111 , on supprime le bit de trop. On a bien 10010111 =
– 128 + 16 + 4 + 2 + 1= – 105 et – 61 – 44 = – 105

10/10/2022 102
Applications
b) 72 = 01001000 – 72 = 10110111
– 61 11000011
– 72 10111000
– 133 101111011 , on supprime le bit de trop, le
résultat est faux (il est positif). Il y a débordement
(overflow) : on est en dehors de la zone entre –127
et +127 correspondant aux nombres signés de 8
bits. Cela peut se tester en constatant que les deux
dernières retenues à
gauche sont 10.

10/10/2022 103
Applications
c) 99 = 01100011 35 = 00100011 – 35 = 11011101
99 01100011
– 35 11011101
64 101000000 , on supprime le bit de trop. Le
résultat est juste (c’est toujours le cas pour une vraie
soustraction puisqu’il ne peut pas y avoir overflow).
d)
99 01100011
35 00100011
134 10000110 , aucun bit de trop, mais le résultat
est faux (il est négatif). Il y a overflow (le résultat 134
n’est pas dans la zone de -127 à 127.

10/10/2022 104
4.3 Codage des caractères (code ASCII)

La mémoire de l'ordinateur conserve toutes les données


sous forme numérique. Il n'existe pas de méthode pour
stocker directement les caractères. Chaque caractère
possède donc son équivalent en code numérique (un
nombre) : c'est le code ASCII (American Standard Code
for Information Interchange). Il existe plusieurs type de
codage des caractères (format universel reconnu par
tous les ordinateurs):

10/10/2022 105
4.3 Codage des caractères
• ASCII (American Standard Code for Information
Interchange):
• 7 bits pour représenter 128 caractères ( 0 a 127)
• 48 à 57 : représentent les chiffres dans l’ordre (0,1,…,9)
• 65 à 90 : représentent les alphabets majuscules (A,…,Z)
• 97 à 122 : représentent les alphabets minuscule (a,…z)

 EBCDIC ( Extended Binary Coded Decimal Internal Code):


 8 bits pour représenter 256 caractères ( 0 a 255)
 Code les caractères accentues : à, é, è,…etc.
 Compatible avec le code ASCII simple.

10/10/2022 106
4. 3 Codage des caractères
• UNICODE:
• Mis au point en 1991
• 16 bits pour représenter 65 536 caractères (0 à 65535)
• Compatible avec ASCII
• Code la plupart des alphabets : Arabe, Chinois, …

10/10/2022 107
4. 3 Code ASCII (128 Caractères)
Exemple:
Le code (41)16 = (0100 0001)2 correspond au caractère A
Le code (61)16 = (0110 0001)2 correspond au caractère a
Le code (3F)16 = (0011 1111)2 correspond au caractère ?

10/10/2022 108
4. 3 Code ASCII etendu

10/10/2022
UNICODE

10/10/2022
APPLICATION
Ce ne sont que des bits !!!

Ce ne sont que des bits !!!

01001001 01001110 01000110 01001111 01010010 01001101 01000001 01010100


01001001 01010001 01010101 01000101

10/10/2022
APPLICATION bits !!!

Ce ne sont que des bits !!!


01001001 01001110 01000110 01001111 01010010 01001101 01000001 01010100
01001001 01010001 01010101 01000101

10/10/2022
4. 4 Codage des Images Bitmap
Image : décomposée en pixels
Chaque pixel : codage de la couleur
▪ Avec 1 bit/pixel : image Noir et Blanc
▪ Avec 1 octet/pixel : 256 couleurs
Exemple :

10/10/2022 113
Comment coder ce dessin sous forme de suite
Comment coder ce dessin sous
forme de suite de nombres?

10/10/2022
Comment coder ce dessin sous forme de suite
Comment coder ce dessin sous
forme de suite de nombres?

10/10/2022
Comment coder ce dessin sous forme de suite
Comment coder ce dessin sous
forme de suite de nombres?

10/10/2022
Comment coder ce dessin sous forme de suite
Comment coder ce dessin sous
forme de suite de nombres?

10/10/2022
Comment coder ce dessin sous forme de suite
Comment coder ce dessin sous
forme de suite de nombres?

10/10/2022
4. 5 Codage du son

10/10/2022

Vous aimerez peut-être aussi