Vous êtes sur la page 1sur 23

Chapitre 2 - Représentation interne des données

INF1007 : Introduction à la
programmation
Chapitre 2 : Représentation interne des données

Génie informatique et génie logiciel Benjamin De Leener 1 H2022


Chapitre 2 - Représentation interne des données

Plan du cours

1. Bit, octet et mot

2. Représentation de données numériques

(virgules fixe et flottante)


3. Bases de numération

4. Représentation des données-caractères et

encodage

Génie informatique et génie logiciel Benjamin De Leener 2 H2022


Chapitre 2 - Représentation interne des données

Rappel : Environnement informatique


Deux types de mémoire : la mémoire vive ou RAM (Random Access
Memory) et la mémoire morte (disque dur).
L’Unité de Contrôle et de Traitement (UCT) est le « cerveau » de
l’ordinateur et peut effectuer des opérations logiques et arithmétiques
de base.
Entrée Sortie
Les données entrent et
(clavier, Mémoire (écran, sortent de l’ordinateur à
etc.) etc.)
l’aide de périphériques
d’entrée et de sortie.
Bus L’information est transférée
d’une unité à l’autre à
l’aide d’un bus.
Unité
Unité de
arithmétique Registres
et logique
contrôle Que se passe-t-il lorsqu’on
exécute un programme?
UCT (en anglais CPU)
Génie informatique et génie logiciel Benjamin De Leener 3 H2022
Chapitre 2 - Représentation interne des données

0 ou 1?

L’ordinateur fonctionne avec un langage binaire, représenté par les


chiffres 0 (zéro) et 1 (un). Le stockage dans la mémoire de cet
unité atomique est appelé un bit. Il s’agit de la plus petite unité de
l’ordinateur.
Les bit peuvent être assemblés pour former des groupes :
• quartet (nibble): 4 bits
• octet (byte): 8 bits
• mot (word): 16 bits
• long mot (long word): 32 bits

Génie informatique et génie logiciel Benjamin De Leener 4 H2022


Chapitre 2 - Représentation interne des données

Combinaisons binaires
L’assemblage des bits permet de créer un grand ensemble de
combinaisons possibles, et donc de stocker des informations variées.
Nombre de Nombre de Exemples de combinaison
bits combinaison
1 2 01

2 4 00 01 10 11

3 8 000 001 010 011 100 101 110 111

4 16 0000 0001 0010 0011 0100 0101 etc.

5 32 00000 00001 01000 00101 11111 etc.

6 64 000001 100000 101010 010101 etc.

7 128 0000001 1000000 1010101 0101010 etc.

8 256 00000000 00000001 00000010 etc.

n 2n

Génie informatique et génie logiciel Benjamin De Leener 5 H2022


Chapitre 2 - Représentation interne des données

Mémoire
La mémoire de l’ordinateur est composé d’un assemblage de bits :

• 1 kibioctet (kio) = 210 octets = 1 024 o = 1 024 octets

• 1 mébioctet (Mio) = 220 octets = 1 024 kio = 1 048 576 octets

• 1 gibioctet (Gio) = 230 octets = 1 024 Mio = 1 073 741 824 octets

• 1 tébioctet (Tio) = 240 octets = 1 024 Gio = 1 099 511 627 776 octets

• pébioctet (Pio), exbioctet (Eio), zébioctet (Zio), yobioctet (Yio) , etc.

Les préfixes décimaux quant à eux sont identiques aux préfixes du Système international d'unités :

• 1 kilooctet (ko) = 103 octets = 1 000 o = 1 000 octets

• 1 mégaoctet (Mo) = 106 octets = 1 000 ko = 1 000 000 octets

• 1 gigaoctet (Go) = 109 octets = 1 000 Mo = 1 000 000 000 octets

• 1 téraoctet (To) = 1012 octets = 1 000 Go = 1 000 000 000 000 octets

• pétaoctet (Po), exaoctet (Eo), zettaoctet (Zo), yottaoctet (Yo), etc.

Génie informatique et génie logiciel Benjamin De Leener 6 H2022


Chapitre 2 - Représentation interne des données

Représentation des données numériques

L’assemblage de chiffres binaires permet de stocker des informations,


incluant des valeurs logiques (0 = Faux et 1 = Vrai) et des nombres.
Les nombres dans tout système de base B peuvent être calculé avec la
formule suivante :
𝑐! ×𝐵 "#! + 𝑐$ ×𝐵 "#$ + ⋯ + 𝑐"#! ×𝐵! + 𝑐" ×𝐵 %
où 𝐵 est la base, 𝑛 est le nombre de chiffres et 𝑐& sont les chiffres.
Exemples de quartet en base binaire (B=2) :
• 0010 = 0×2' + 0×2$ + 1×2! + 0×2% = 2
• 1011 = 1×2' + 0×2$ + 1×2! + 1×2% = 11
• 1111 = 1×2' + 1×2$ + 1×2! + 1×2% = 15

Génie informatique et génie logiciel Benjamin De Leener 7 H2022


Chapitre 2 - Représentation interne des données

Bases de numération
Hexadécimal Binaire Décimal Hexadécimal Binaire Décimal

0 0000 0 10 10000 16
1 0001 1 11 10001 17
2 0010 2 12 10010 18
3 0011 3 13 10011 19
4 0100 4 14 10100 20
5 0101 5 15 10101 21
6 0110 6 16 10110 22
7 0111 7 17 10111 23
8 1000 8 18 11000 24
9 1001 9 19 11001 25
A 1010 10 1A 11010 26
B 1011 11 1B 11011 27
C 1100 12 1C 11100 28
D 1101 13 1D 11101 29
E 1110 14 1E 11110 30
F 1111 15 1F 11111 31

Génie informatique et génie logiciel Benjamin De Leener 8 H2022


Chapitre 2 - Représentation interne des données

Exercices

1. Convertir un nombre hexadécimal en binaire / décimal


Hexadécimal : 82E8
Décimal : 8x163 + 2x162 + 14x161 + 8x160 = 33512
Binaire : 1000 0010 1110 1000 (décomposition en groupe de 4)

2. Convertir un nombre binaire en hexadécimal et décimal


Binaire : 101101
Hexadécimal : 2D
Décimal : 1x25 + 0x24 + 1x23 + 1x22 + 0x21 + 1x20 = 45

Génie informatique et génie logiciel Benjamin De Leener 9 H2022


Chapitre 2 - Représentation interne des données

Bases de numération
Décimal 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Base 2 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010

Ternaire 3 0 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121 122 200 201 202 210 211 212 220 221 222

4 0 1 2 3 10 11 12 13 20 21 22 23 30 31 32 33 100 101 102 103 110 111 112 113 120 121 122

5 0 1 2 3 4 10 11 12 13 14 20 21 22 23 24 30 31 32 33 34 40 41 42 43 44 100 101

6 0 1 2 3 4 5 10 11 12 13 14 15 20 21 22 23 24 25 30 31 32 33 34 35 40 41 42

7 0 1 2 3 4 5 6 10 11 12 13 14 15 16 20 21 22 23 24 25 26 30 31 32 33 34 35

Octal 8 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32

9 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28

Décimal 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 17 18 19 20 21 22 23 24 25 26

11 0 1 2 3 4 5 6 7 8 9 A 10 11 12 13 14 15 16 17 18 19 1A 20 21 22 23 24

Duodécimal 12 0 1 2 3 4 5 6 7 8 9 A B 10 11 12 13 14 15 16 17 18 19 1A 1B 20 21 22

13 0 1 2 3 4 5 6 7 8 9 A B C 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 20

14 0 1 2 3 4 5 6 7 8 9 A B C D 10 11 12 13 14 15 16 17 18 19 1A 1B 1C

15 0 1 2 3 4 5 6 7 8 9 A B C D E 10 11 12 13 14 15 16 17 18 19 1A 1B

Hexadécimal 16 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A

Génie informatique et génie logiciel Benjamin De Leener 10 H2022


Chapitre 2 - Représentation interne des données

Limitations du système binaire

Le système binaire présente un nombre limité de représentation = 2n


Comment représenter …
• les nombres entiers (positifs et négatifs) ?
• Solution (complément à deux) : utiliser un chiffre pour le signe
(0 = positif et 1 = négatif)
• Problème : décalage de la plage de représentation

• les décimales ?
• Solution : deux octets pour un nombre
• Problème : précision limitée et besoin de mémoire

• les fractions ? (ex : 1/10)


• les grands nombres (addition, multiplication) ?

Génie informatique et génie logiciel Benjamin De Leener 11 H2022


Chapitre 2 - Représentation interne des données

Virgule flottante

La virgule flottante est un système permettant de représenter des


nombres réels et est composée de :
• un signe, égal à -1 ou 1
• une mantisse 𝑠𝑖𝑔𝑛𝑒 × 𝑚𝑎𝑛𝑡𝑖𝑠𝑠𝑒 × 𝐵 ()*+,-".

une base

−0.46852 × 10!"#
exposant
• un exposant signe
mantisse signe de
position du base
l’exposant
point décimal

La représentation normalisée de la virgule flottante oblige la mantisse


à être disposé après le point décimal (voir format IEEE 754).

Génie informatique et génie logiciel Benjamin De Leener 12 H2022


Chapitre 2 - Représentation interne des données

Virgule flottante dans l’ordinateur


$%&'(
Simple précision −1 1. 𝑚𝑎𝑛𝑡𝑖𝑠𝑠𝑒 × 2((*+,$-'.!"/0)
1 bit 8 bits 23 bits

signe exposant mantisse

Double précision −1 $%&'( 1. 𝑚𝑎𝑛𝑡𝑖𝑠𝑠𝑒 × 2((*+,$-'.!"2/#)


1 bit 11 bits 52 bits

signe exposant mantisse

Génie informatique et génie logiciel Benjamin De Leener 13 H2022


Chapitre 2 - Représentation interne des données

Gamme de représentation (définition en C++)


Type Taille Gamme de valeur
char 1 byte -128 to 127 or 0 to 255

unsigned char 1 byte 0 to 255

signed char 1 byte -128 to 127

int 2 or 4 bytes -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647

unsigned int 2 or 4 bytes 0 to 65,535 or 0 to 4,294,967,295

short 2 bytes -32,768 to 32,767

unsigned short 2 bytes 0 to 65,535

long 8 bytes -9223372036854775808 to 9223372036854775807

unsigned long 8 bytes 0 to 18446744073709551615

Type Taille Gamme de valeur Précision


float 4 bytes 1.2E-38 to 3.4E+38 6 décimales

double 8 bytes 2.3E-308 to 1.7E+308 15 décimales

long double 10 bytes 3.4E-4932 to 1.1E+4932 19 décimales

Génie informatique et génie logiciel Benjamin De Leener 14 H2022


Chapitre 2 - Représentation interne des données

Notation de la représentation

Un même nombre peut donc être représenté de différentes manières. À


l’inverse, une représentation visuellement similaire peut encoder différents
nombres.
Par exemple, « 10 » représente :
• 10 en représentation décimale
• 2 en représentation binaire
• 16 en représentation hexadécimale

Afin de différencier les représentations, on peut utiliser une notation


indiquant la base de représentation, en ajoutant le préfixe « 0b », « 0o »,
« 0x », où b, o et x correspondent à la base utilisée (binaire, octal, hex).
Exemples : 0b10, 0xF4E6, 0o0103, 0b01010010
Note : si le préfixe n’est pas indiqué, l’ordinateur assume généralement une
représentation décimale.

Génie informatique et génie logiciel Benjamin De Leener 15 H2022


Chapitre 2 - Représentation interne des données

Manipulation en Python

Python dispose de moins de types de représentations des nombres :


Entiers signés (illimités) et virgule flottante

Ouvrez une console Python!

• Affichage des nombres sous différentes formes


• Conversion des nombres
• Quelques manipulations de nombres (addition, multiplication, etc.)

Génie informatique et génie logiciel Benjamin De Leener 16 H2022


Chapitre 2 - Représentation interne des données

Représentation des données caractères

Les nombres sont facilement stockés dans la mémoire, grâce à la nature


binaire de l’ordinateur.
Les caractères que nous utilisons pour communiquer, écrire et programmer
sont des représentations visuelles de son. Comment sont-ils représentés
dans l’ordinateur?
Réponse : sous forme binaire, à l’aide d’un encodage
Exemples :
• la lettre « a » pourrait être encodée avec le nombre 0 (binaire : 0b0000)
• la lettre « f » pourrait être encodée avec le nombre 5 (binaire : 0b0101)
Combien faut-il d’espace dans la mémoire (en bits) pour encoder l’ensemble
des lettres de l’alphabet?

Génie informatique et génie logiciel Benjamin De Leener 17 H2022


Chapitre 2 - Représentation interne des données

Qu’est-ce qu’un caractère?


On appelle caractère tout symbole qui peut être écrit,
comme par exemple:
• les lettres de l’alphabet latin : abcd...xyzABCD...XYZ
• les chiffres décimaux : 0123456789
• les symboles de ponctuation (y compris l’espace) : ., ;:!?
• les symboles de parenthésages : ()[]{}
• et bien d’autres caractères encore comme les lettres
accentuées àéèûÉÀ... et les lettres d’autres alphabets :
α, β, д, ф, ,‫ ځ‬,‫ ش‬,‫ ב‬,‫ 😉א‬...

Génie informatique et génie logiciel Benjamin De Leener 18 H2022


Chapitre 2 - Représentation interne des données

Encodage

Pour représenter l’ensemble des


caractères de façon universelle,
nous disposons de plusieurs
encodages standardisés.
L’un des premiers codes a été
défini par le standard ASCII
(American Standard Code for
Information Interchange) en
1963.
Ce standard utilise 7 bits en
mémoire, et peut donc
représenter 128 caractères.

Génie informatique et génie logiciel Benjamin De Leener 19 H2022


Chapitre 2 - Représentation interne des données

Problème d’encodage

Pour palier au manque de caractères dans l’encodage ASCII, par


exemple pour les langues utilisant un autre alphabet, plusieurs
extensions ont été mises en place et même, dans la plupart des
cas, créé des encodages complètement différents.
Si un texte ou un programme informatique est encodé en ASCII mais
est lu par un ordinateur utilisant un autre encodage, les lettres ne
seront pas affichées correctement, menant à des résultats
dramatiques!

Génie informatique et génie logiciel Benjamin De Leener 20 H2022


Chapitre 2 - Représentation interne des données

Encodage universel

Pour résoudre les problèmes d’incompatibilité entre environnements


informatiques, l’encodage universel Unicode a été introduit,
représentant maintenant plus de 143 000 caractères
(http://www.unicode.org/versions/Unicode13.0.0/).

Quelques particularités :
• Les 128 premiers
caractères sont encodés
en ASCII
• Couvrent la majorités dans
langues et langages
• Peut être encodé en 8-bit,
16-bit, 32-bit, etc.
Génie informatique et génie logiciel Benjamin De Leener 21 H2022
Chapitre 2 - Représentation interne des données

Exercices

En utilisant l’encodage ASCII, concevez un algorithme qui transforme


une lettre minuscule en majuscule, et vice-versa.

Génie informatique et génie logiciel Benjamin De Leener 22 H2022


Chapitre 2 - Représentation interne des données

Plan du cours

1. Bit, octet et mot

2. Représentation de données numériques

(virgules fixe et flottante)


3. Bases de numération

4. Représentation des données-caractères et

encodage

Génie informatique et génie logiciel Benjamin De Leener 23 H2022

Vous aimerez peut-être aussi