Cohen Julien Neville gabriel

Slides:



Advertisements
Présentations similaires
L’électronique numérique
Advertisements

Architecture de machines Codage des informations
« 1.8. La numération binaire »
Le codage de l ’information
Architecture des Ordinateurs
Les types de codage Le complément à 2 : Nombres entiers
INTRODUCTION.
Présentation Unité de codage
La notation en complément à 2
Représentation numérique de l’information
Le binaire L’historique.
Le codage des nombres en informatique
Continuité Introduction Continuité Théorème des valeurs intermédiaires
Représentation numérique de l’information
Chapitre 1 : Nombres entiers et nombres décimaux
Partie Informatique Algorithmique Introduction A. LOTFI
Nature, numération, code
1. Convention La base d'un système de numération est le nombre de symboles utilisés par le système de numération. - binaire (2), 2 chiffres 0,1 ; -décimal.
Le Langage Binaire.
Et l'énergie dans tout çà ….
B.Shishedjiev - Informatique
Le codage des nombres en informatique
Formats des nombres réels
Division euclidienne - décimale
Arithmétique des “computers”
PUISSANCES D’UN NOMBRE
Chapitre 1 Le Sens des nombres
Chiffres significatifs, incertitudes et précision des instruments
Annexe A: Numérotation binaire
Mise en forme en Mathématiques
NOMBRES ENTIERS, NOMBRES DÉCIMAUX
Chapitre 4 : LES PUiSSANCES
Informatique, Ordinateur & Programme ...
Représentation de l’information
Codage de l’information
Chapitre 2 : Représentation de l’information dans la machine
Représentation binaire de nombres entiers et opérations arithmétiques de base Sujets de ce thème
Représentation des informations
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Représentation et opérations.
Les puissances de 10.
Le Système Binaire Introduction Les bases à connaitre Conversions
Codage des nombres réels avec la norme IEEE-754
CHAPITRE 3: LES NOMBRES.
Chapitre 3 :Algèbre de Boole
EVOLUTION DES CHIFFRES
Le codage des nombres binaires
Cohen Julien Neville gabriel
Représentation de l'information sur ordinateur Représentation de
Le codage des nombres en informatique
Acquis ceinture blanche
L’écriture des grands nombres: les puissances de 10
Codage des nombres en informatique : le système binaire.
REPRESENTATION DE L’INFORMATION
Représentation des entiers
SIO SI2 : Support Réseau des Accès Utilisateurs
Le codage des nombres en informatique
BASES cours 3.
Chapitre 1 Nombres relatifs.
Acquis ceinture blanche
Introduction à la programmation (420-PK2-SL) cours 1
Codage de l’information
Cours d’initiation en Informatique
Chapitre 4 La représentation des nombres.
Chapitre 4b La représentation des nombres.
La NUMERISATION de l’information
A. Lebrun. La base 2 Un nombre peut se représenter en base deux par une suite de 0 ou de 1. Chaque bit a un poids qui dépend de son rang Le format n impose.
Le codage des nombres en informatique
La place du calcul mental et du calcul réfléchi dans la résolution de problème. Qu’est-ce que chercher?
Représentation des nombres réels
Transcription de la présentation:

Cohen Julien Neville gabriel Le codage des nombres Cohen Julien Neville gabriel

Introduction Deux états possible: OUVERT ou FERME  equivaut à 0 ou 1 0 ou 1 = chiffre binaire / booléen / bit(binay digit)

I) La représentation des entiers naturels en différentes bases

1) Représentation en base 10 On utilise le système de numération décimale à position On dit que 10 constitue la base de notre système. Il s’explique simplement par le nombre de symboles graphiques, ou chiffres, dont nous disposons pour représenter nos nombres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Exemple: 3207 représente 3 milliers + 2 centaines + 0 dizaines + 7 unités. Soit 3207 = 3 x 103 + 2 x 102 + 0 x 101 + 7

2) Représentation en base 2 Il n’y a que 2 chiffres : 0 et 1 On utilise le système de numérations binaire à position (le principe reste le même qu’en base 10) Exemple: -10011 = 1 × 24 + 0 × 23 + 0 × 22 + 1 × 21 + 1 × 20 -10011 = 1 × 16 + 0 × 8 + 0 × 4 + 1 × 2 + 1 × 1 …c’est-à-dire 19 en base 10 -Le bit (ou chiffre) le plus à gauche est appelé bit de poids fort -Le bit (ou chiffre) le plus à droite est appelé bit de poids faible

3) Le système hexadécimal Il utilise 16 symbole en général les chiffres arabes pour les dix premiers chiffres et les lettres A à F pour les six suivants. Utilisé en électronique numérique et en informatique car il est très commode En effet, chaque chiffre hexadécimal correspond exactement à quatre chiffres binaires (ou bits), rendant les conversions très simples et fournissant une écriture plus compacte.

Ainsi, les trois bases que nous avons cité précédemment sont les plus utilisé et les plus courante en électronique numérique et en informatique. Il ne faut cependant pas négliger le fait qu’il existe une infinité de base.

II) Un peu de pratique

1) Dans l’ordinateur C’est le codage binaire qui est utilisé: Par exemple avec le nombre dont la représentation décimale est 59 : 59 = 1 x 32 + 1 x 16 + 1 x 8 + 0 x 4 + 1 x 2 + 1 x 1 59 = 1 x 25 + 1 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 59 = 1110112.

2) Conversions

3) Addition de nombres binaires Pour additionner deux nombres binaires on procède comme en base 10. 0+0=0 1+0=0+1=1 1+1=10  chaque fois qu’il y a 1+1, on écrit 0 et on retient 1. Par exemple :

4) Multiplication de nombres binaires Il suffit d'utiliser les quatre opérations principales dédiées à la multiplication à savoir : 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1. Exemple :

III) Codage d’entiers relatifs Comment représenter à l’aide de bits les entiers positifs ET négatifs, sachant qu’en bonne machine totalement binaire, un processeur ne pige ni le signe plus, ni le signe moins ?

1) La représentation signe valeur absolue On pourrait utiliser un bit pour le signe et les autres bits pour la valeur absolue Signe valeur absolue Exemple : 610 = 000001102 , alors -610 = 1000110 Inconvénient : ce bit servant juste à déterminer le signe peut conduire à des résultats surprenant lors du traitement Exemple : 610 + −610 = −1210 (car 00000110+1000110=10001100) De plus Le nombre 0 se trouve représenté par deux valeurs distinctes : +0 (00000000) et -0 (10000000). Conséquence : : le plus grand entier relatif "codable" devient 127 (01111111), et le plus petit -127 (11111111). on ne peut plus parler de conversion entre binaire et base 10 !

2) Complément à deux Soit un nombre binaire N composé de p bits. En mathématique, on appellera complément à 1 de N le nombre noté 𝑁 tel que: N + 𝑁 = 2p − 1. Exemple : 1001012 + 0110102 = 1111112 = 26 – 1 Donc 1001012 est bien le complément à 1 de 0110102 On peut donc en déduire la relation suivante : −N = 𝑁 + 1 – 2p

3) La représentation biaisée (ou par excès) Elle consiste à considérer tout nombre binaire codé comme un entier non signé auquel on soustrait une constante, ou biais, définie selon le domaine de validité des entiers codés que l’on recherche. Exemple : 12910 = 100000012 avec la méthode positionnelle Or, le biais d’un octet est 128, car il correspond à la moitié du nombre de nombres codables sur un octet(256). L’écriture biaisée de 129 est donc : 10000001-10000000= +1

4) Récapitulatif Prenons pour exemple l’octet 10000001 Application : Comment le décoderiez-vous en base 10? Aucune idée! Il est foncièrement impossible de décoder un octet si l’on ignore le codage qui a servi pour le créer. En d’autres termes, un octet peut virtuellement coder n’importe quel entier ! C’est au processeur de connaître en permanence le type de codage qui a été utilisé pour coder les nombres qu’il manipule.  Quelles sont les méthodes de codage que l’on a vu précédemment?

Nous avons vu jusqu’à présent 4 méthodes de codage : le codage par complément à deux, représentation signe-valeur absolue, représentation biaisée avec un biais égal à 128, numération positionnelle. Ainsi, si on ne précise pas le codage l’octet 10000001 pourrait être: −127 si on utilise le codage par complément à deux. −1 Si on utilise la représentation signe-valeur absolue. +1 Si on utilise la représentation biaisée avec un biais égal à 128 +129 Si on code en numération binaire positionnelle.

IV) Le codage des réels

Nous avons vu à jusqu’à présent comment coder des nombres relatifs, qu’en est-il des nombres réel ? Nombre réel = partie entière située à gauche de la virgule + éventuellement une partie décimale, située après celle-ci. On utilise le principe de la numération positionnelle Exemple : 23, 375 = 2×10+3×1+3×0.1+7×0.01+5×0,00 1 . . . ce qui revient à écrire : 23, 375= 2 × 101 + 3 × 100 + 3 × 10-1 + 7 × 10-2 + 5 × 10-3 De même en binaire : 10111, 011 =1×24+0×23+1×22+1×21+1×20+0×2-1+1×2-2+1×2-3 . . . soit : 10111, 011 =1×16+0×8+1×4+1×2+1×1+0×0, 5+1×0, 25+1×0, 125 . . . c’est-à-dire 10111, 0112 = 23, 37510 

1) Numération binaire par virgule fixe Le problème : Comment coder la virgule car impossible de la coder par un bit! (problème qui ne se pose pas pour le codage du signe car placé toujours au même endroit)  la machine doit convenir une fois pour toute d’une position immuable de la virgule. Les réels codés selon cette méthode seront alors dits représentés en virgule fixe. Voici la méthode de conversion en base 2 :

Convertissons 1234, 347 en base 2. (traitons d’abord la partie entière) 123410 = 100110100102 On transforme la partie décimale selon le schéma suivant : 0, 347 × 2 = 0, 694 0, 347 = 0, 0 . . . 0, 694 × 2 = 1, 388 0, 347 = 0, 01 . . . o, 388 × 2 = 0, 766 0, 347 = 0, 010 . . . 0, 766 × 2 = 1, 552 0, 347 = 0, 0101 . . . 0, 552 × 2 = 1, 104 0.347 = 0, 01011 . . . 0, 104 × 2 = 0, 208 0, 347 = 0, 010110 . . . 0, 208 × 2 = 0, 416 0, 347 = 0, 0101100 . . . 0, 416 × 2 = 0, 832 0, 347 = 0, 01011000 . . . 0, 832 × 2 = 1, 664 0, 347 = 0, 010110001 . . . 0, 664 × 2 = 1, 328 0, 347 = 0, 0101100011 . . . 0, 328 × 2 = 0, 656 0, 347 = 0, 01011000110 . . . On continue ainsi jusqu’à la précision désirée. . .Attention ! Un nombre à développement décimal fini en base 10 ne l’est pas forcément en base 2.

On aura donc quelque chose comme ça : Prenons un format sur 4 octets pour coder nos réels positifs avec la virgule placé en plein milieu. On aura donc quelque chose comme ça : 0000000000000000(,)0000000000000000 Exemple : 0.23810 Voici ce nombre codé en binaire en virgule fixe : 0000 0000 0000 0000 (,) 0011 1100 1110 1101 On remarque bien qu’il y a un grand gâchis de bits : les 16 bit avant la virgule sont inutiles! 16 bits = précision de 2-16 16 bits = 216 possibilités

2) Le flottement de la virgule (−1) signe × Mantisse × 10±Exposant Mantisse = partie décimale du nombre Donc pour les binaires nous avons la relation suivante : (−1) signe × Mantisse × 2±Exposant (mantisse et exposant exprimés en binaire) Représentation en virgule flottante Exemple : 12647 = 12647 × 100 = 126, 47 × 102 = 1264700 × 10−2 11001 = 11001 × 20 = 1, 1001 × 24 = 1100100000 × 2−5

3) La norme IEEE Code un nombre sur 32 bits -Le signe du nombre sera codé par le bit de poids fort (celui le plus à gauche) : "0" pour les réels positifs, "1" pour les réels négatifs ; à l’image de la représentation par signe-valeur absolue. -L’exposant sera codé selon une représentation biaisée et sur les 8 bits consécutifs au signe. Il sera établi de telle manière que la mantisse soit de la forme "1, . . .", c’est-à-dire de telle manière que la virgule soit située juste après le premier bit égal à "1". -la mantisse (les bits situés après la virgule) sur les 23 bits restants.

Concrètement le codage a la forme suivante : Seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm le s représente le bit relatif au signe les e représentent les bits relatifs à l'exposant les m représentent les bits relatifs à la mantisse Remarque : -les exposant 00000000 et 11111111 sont interdits -Il faut rajouter 127 (01111111) à l'exposant pour une conversion de décimal vers un nombre réel binaire. Les exposants peuvent ainsi aller de -254 à 255

Exemple : Soit à coder la valeur 525,5. -525,5 est positif donc le 1er bit sera 0. -Sa représentation en base 2 est la suivante : 1000001101,1 -En normalisant, on trouve : 1,0000011011*29 -On ajoute 127 à l'exposant qui vaut 9 ce qui donne 136, soit en base 2 : 10001000 -La mantisse est 0000011011(car on prend la partie décimale de 1,0000011011*29) -Comme la mantisse doit occuper 23 bits, il est nécessaire d'ajouter des zéros pour la compléter : 00000110110000000000000 -La représentation du nombre 525,5 en binaire avec la norme IEEE est donc : 0 1000 1000 00000110110000000000000 0100 0100 0000 0011 0110 0000 0000 0000

Conclusion