Contenu de Mon Cours (Chapitre 1 À 4)

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

Introduction

L’informatique qui à ses débuts était une affaire de spécialistes, est aujourd’hui devenue
l’affaire de tous; d’où l’importance d’une solide formation de tous aux différentes techniques
utilisées par la science informatique. Ce cours est une synthèse d’un minima à connaitre sur le
sujet (informatique). Le premier chapitre rassemble les concepts essentiels sur la notion
d'ordinateur, de codage, de programme et d'instruction au niveau machine.

Chapitre 1 : Ordinateur et évolution

Plan du chapitre:

1. Les 3 grandes lignes de pensée

2. L’ordinateur

2.1 Eléments fondamentaux

3. Information - Informatique

3.1 Les définitions

3.2 Critère algorithmique élémentaire

1. Les 3 grandes lignes de pensée

L’histoire de l’informatique débute par l’invention de machines qui au départ


correspondent à des lignes de pensée différentes. L’informatique résultera de la fusion des
savoirs acquis dans ces domaines. Elle n’est pas une synthèse de plusieurs disciplines, mais
plutôt une discipline entièrement nouvelle puisant ses racines dans le passé. Seul l’effort
permanent du génie créatif humain l’a rendue accessible au grand public de nos jours. Nous
avons 3 grandes lignes de pensée à savoir : les machines à calculer, les automates et les
machines programmables.

1
Les automates (du XIII ième au XVIII siècle)

Le métier à tisser (Jacquard XVIII ième siècle) La machine à calculer (Pascal XVII ième siècle)

La cybernétique (année 1950 – 1960)

Les machines mécanographiques (années 1950) L’ordinateur (Von Neumann 1945)

L’informatique depuis 1970

Au 17 ième siècle, Pascal invente la Pascaline, première machine à calculer (addition et


soustraction seulement). Leibniz améliore la machine de Pascal pour avoir les quatre
opérations de base (+,-,*,/). Les automates, les horloges astronomiques, les machines
militaires ont quant à eux vu le jour dès le 13ème siècle. Un ordinateur est fondé sur les
principes de calcul d’une machine de Turing. Dans les années 1945, Von Neumann a défini la
structure générale d’un ordinateur à partir des travaux d’Allan Turing.

2. L’ordinateur

Un ordinateur est constitué de matériel (hardware) et de logiciel (software). Un ordinateur est


une machine à traiter de l’information. L’information est fournie sous forme de données
traitées par des programmes (exécutés par des ordinateurs).

Une composition minimale d’un ordinateur est :

- Une mémoire Centrale ;


- Une unité de traitement avec son UAL (unité de calcul).
- Une unité de commande ou contrôle.
- Une ou plusieurs unités d’échanges

2
Mémoire

Unité de contrôle Unité Arithmétique et logique

Accumulateur

Entrée Sortie

Figure 1.1 : Architecture de Von Neumann

A partir de ces éléments, l’on est en mesure de réaliser les fonctions de base d’un ordinateur
que sont : le stockage des données, le traitement des données, le mouvement de données et le
contrôle de celles-ci.

2.1. Eléments fondamentaux

Le processeur

Le processeur ou CPU (Central Processing Unit) est l’unité centrale de traitement des
données. Il est chargé d’interpréter et d’exécuter les instructions d’un programme qui se situe
en mémoire. Le CPU est constitué de deux unités fonctionnelles : l’unité de commande et
l’unité arithmétique et logique.

La mémoire

La mémoire est un organe capable de contenir, de conserver et de restituer sans les modifier
de grandes quantités d’information. Nous utilisons généralement deux types de mémoires : les
mémoires vives ou RAM (Random access Memory – mémoires dans lesquelles on peut lire et
écrire) et les mémoires mortes ou ROM (Read Only Memory – mémoires dans lesquelles on
ne peut que lire). Les unités de mesure de stockage de l’information sont :

Le bit (pas de notation)


L’octet = 23 bits = 8 bits. (noté 1 o)
Le Kilo-octet = 210 octets =1024 o (noté 1 Ko)
Le Méga-octet = 220 octets =(1024)2 o (noté 1 Mo)
Le Giga-octet = 230 octets =(1024)3 o (noté 1 Go)
Le Téraoctet = 240 octets =(1024)4 o (noté 1 To) etc.

3
Les périphériques

Les périphériques sont chargés d’effectuer des tâches d’entrées et/ou de sorties de
l’information. En voici quelques exemples :

- Périphériques d’entrée : Clavier, souris, crayon optique, écran tactile, stylo code barre,
carte son, scanner, caméra, etc.
- Périphériques de sortie : Ecran, imprimante, table traçante, carte son, télécopie,
modem etc.
- Périphériques d’entrée sortie : Mémoire auxiliaire (sert à stocker les données et les
programmes) telle que Stockage de masse sur disque dur ou disquette, Mémoire clef
USB, CD-Rom, DVD, disque magnéto-électrique etc.

Les Bus représentent dans l’ordinateur le système de communication entre ses divers
constituants. Ils sont au nombre de trois : le bus d’adresses, le bus de données et le bus de
contrôle.

Le bus d’adresses (unidirectionnel) permet à l’unité de commande de transmettre les


adresses à rechercher et à stocker. Le bus de données (bidirectionnel) est celui-là sur lequel
circulent les instructions ou les données à traiter ou déjà traitées en vue de leur rangement. Le
bus de contrôle (bi-directionnel) transporte les ordres et les signaux de synchronisation
provenant de l’unité de commande vers les divers organes de la machine. Il véhicule aussi les
divers signaux de réponse des composants.

3. Information - Informatique

3.1 Les définitions

L’information est le support formel d’un élément de connaissance humaine susceptible d’être
représentée à l’aide de conventions (codages) afin d’être conservée, traitée ou communiquée.

L’informatique est la science du traitement automatique de l’information dans les domaines


scientifiques, techniques, économiques et sociaux.

Une donnée est la représentation d’une information sous une forme conventionnelle (codée)
destinée à faciliter son traitement.

Schéma simplifié du traitement de l’information

Traitement

Données Résultats
Entrée Sorties

4
Actuellement, l’informatique intervient dans tous les secteurs d’activités de la vie
quotidienne : démontrer un théorème (mathématique), faire jouer aux échecs (intelligence
artificielle), dépouiller un sondage (économie), gérer un robot industriel (atelier), facturation
de produits (entreprise), traduire un texte (linguistique), imagerie médicale (médecine)
formation à distance (éducation), Internet (grand public), etc. l’informatique représente une
plus value dans les domaines de l’exploration et exploitation minières.

5
Chapitre 2 : Systèmes d’exploitation et les commandes de base

Le système d’exploitation d’un ordinateur est chargé d’assurer les fonctionnalités de


communication et d’interface avec l’utilisateur. Un OS est un logiciel dont le grand domaine
d’intervention est la gestion de toutes les ressources de l’ordinateur :
• mémoires,
• fichiers,
• périphériques,
• entrée-sortie,
• interruptions, synchronisation...

La mémoire est une ressource sollicitée par les programmes qui s'exécutent. Pour
éviter les conflits d'accès à la mémoire, le système d'exploitation définit une politique
d'ordonnancement qui va lui permettre de définir les priorités pour le flux de données à traiter.
Il doit gérer l'espace à allouer à chaque application. En cas d'insuffisance de la mémoire
physique, le système d'exploitation crée une zone d'appoint sur le disque dur appelée zone de
swap ou mémoire virtuelle pour les applications qui veulent accéder à la mémoire. Lors de
l'installation de certains systèmes comme linux, il nous est demandé de définir manuellement
l'espace qui sera réservé pour la zone de swap.

Dans un OS, il existe un système de gestion de fichiers qui assure le maintient des
données sur les périphériques mémoires (disques durs, disquettes, clés USB, etc), définit la
structure d'un disque et fournit enfin une interface conviviale à l'utilisateur. Ainsi, un fichier
est vu comme un simple objet aux yeux d’un utilisateur.

1.1 Les principaux types d’OS

Les OS ont subi une évolution parallèle à celle des architectures matérielles. Il existe trois
types d’OS différents, si l’on ignore les systèmes rudimentaires de la 1ère génération :
- Les OS dits monoprogrammation dans lesquels un seul utilisateur est présent et a
accès à toutes les ressources de la machine pendant tout le temps que dure son travail.
L’OS ne permet le passage que d'un seul programme à la fois.
A titre d’exemple, supposons que sur un tel système 5 utilisateurs exécutent chacun un
programme P1, P2, P3, P4, P5.

6
Dans l’ordre de la figure ci-dessus, chaque Pi attend que le Pi+1 précédent ait terminé son
exécution pour être exécuté à son tour.

Exemple de diagramme des temps d’exécution de chaque programme Pi de la figure ci-dessus.


Relativement aux temps d’attente, un système de monoprogrammation est injuste vis à vis des
petits programmes.
- Les OS dits multiprogrammation dans un tel système, plusieurs utilisateurs peuvent
être présents en " même temps " dans la machine et se partagent les ressources de la
machine pendant tout leur temps d’exécution.
En reprenant le même exemple que précédemment, P1, P2, P3, P4, P5 sont exécutés
cycliquement par l’OS qui leur alloue les ressources nécessaires (disque, mémoire, fichier,...)
pendant leur tranche de temps d’exécution. Nous exposons dans l'exemple ci-dessous
uniquement des exécutions ne nécessitant jamais d’interruptions, ni de priorité, et nous posons
comme hypothèse que le temps fictif alloué pour l’exécution est de 1 seconde.

Dans la figure ci-haut, chaque Pi se voit allouer une tranche de temps d'exécution (1 seconde),
dès que ce temps est écoulé, l'OS passe à l'exécution du Pi+1 suivant etc.

7
Exemple de diagramme des temps d’exécution cyclique de chaque programme Pi de la figure
de ci-dessus.
Nous observons dans le diagramme des temps d'exécution que le système exécute P5
pendant 1 seconde, puis abandonne P5 et exécute P4 pendant 1 seconde, puis abandonne P4...,
jusqu'à l'exécution de P1, lorsqu’il a fini le temps alloué à P1, il recommence à parcourir
cycliquement la liste (P5, P4, P3, P2, P1) et réalloue 1 seconde de temps d’exécution à P5 etc.
jusqu'à ce qu’un programme ait terminé son exécution et qu’il soit sorti de la table des
programmes à exécuter.
Relativement aux temps d’attente, un système de multiprogrammation rétablit une
certaine justice entre petits et gros programmes.
- Les OS dits à temps partagés
Il s’agit d’une amélioration de la multiprogrammation. Un tel système organise ses tables
d’utilisateurs sous forme de files d’attente. L’objectif majeur est de connecter des utilisateurs
directement sur la machine et donc d’optimiser les temps d’attente de l’OS (un humain étant
des millions de fois plus lent que la machine sur ses temps de réponse).
Les OS des micro-ordinateurs ont suivi la même démarche et sont partis de systèmes de
monoprogrammation comme MS-DOS et MacOS pour évoluer en systèmes multi-tâches
(version affaiblie de la multiprogrammation) avec OS/2, windows et Linux.

1.3. Les concepts de base

Les concepts de base utiles sont ceux d'utilisateurs, de fichiers, répertoires, environnement
coopératif et environnement préemptif.

Un utilisateur est toute personne ayant les droits d'accès à un compte ou une session
dans un système. Il existe deux types d'utilisateurs : les utilisateurs ordinaires qui n'ont accès
qu'à leurs comptes et les administrateurs ou super-utilisateurs qui ont tous les droits sur le
système. Un compte est caractérisé par un nom et un mot de passe.

8
Un fichier est une suite logique d'informations d'un type donné qui ne peuvent être
manipulées qu'au travers des opérations spécifiques.

Le système d'exploitation supporte en général plusieurs types de fichiers : les fichiers


ordinaires, les fichiers spéciaux.
Fichiers ordinaires : Ce sont les fichiers qui contiennent les données structurées et
manipulées par les utilisateurs. Il s'agit ici des fichiers textes et des fichiers exécutables.
Fichiers spéciaux : Ce sont les fichiers associés aux ressources du système. ils ne sont
manipulables que par l'intermédiaire du système.
Un répertoire est une structure du système de fichiers permettant d'indexer d'autres
fichiers, de façon hiérarchique.

Un Environnement coopératif est un environnement dans lequel les applications


doivent régulièrement donner le contrôle au noyau du système (KERNEL.EXE dans
Windows) afin que celui-ci puisse répartir le temps du processeur aux autres applications.
Un Environnement préemptif est un environnement semblable à un environnement
coopératif dans lequel le noyau du système peut interrompre à tout moment une tâche
quelconque pour donner le contrôle à une autre tâche (ou application).

1.4. Les commandes de base de Linux.

Dans linux, il existe des commandes simples. L’une des commandes simple est la
commande date. Cette commande affiche l’heure et la date actuelles. Une commande liée est
cal, qui par défaut, affiche le calendrier du mois courant. Pour voir le volume d’espaces libres
disponibles sur nos disques durs, la commande est df. Pour afficher la quantité d’espaces
mémoires libre, nous avons la commande free. La commande exit permet de fermer le
termina l.

Navigation
La première chose que nous devons apprendre à faire hormis la saisie est comment
parcourir les systèmes de fichier sur le système Linux. Pour ce faire, nous avons les
commandes suivantes :

● pwd – permet de placer l’utilisateur dans le répertoire de travail courant.


● cd – permet de changer de répertoire de travail.
● ls – Liste les contenus du répertoire

9
Chapitre 3 : Les circuits logiques
1. Logique élémentaire pour l’informatique
1.1 Calcul propositionnel naïf
1.2 Propriétés des connecteurs logiques
1.3 Règles de déduction
2. Algèbre de Boole
2.1 Axiomatique pratique
2.2 Exemples d’algèbre de Boole
2.3 Notation des électroniciens
3. Circuits booléens ou logiques
3.1 Principaux circuits
3.2 Fonction logique associée à un circuit
3.3 Circuit logique associé à une fonction
3.4 Additionneur dans l’UAL

1. Logique élémentaire pour l’informatique

Un peu de logique simple va nous aider à disposer d’outils pratiques mais rigoureux
pour construire des programmes les plus justes possibles. Si la programmation est un art, c’est
un art rigoureux et logique. La rigueur est d’autant plus nécessaire que les systèmes
informatiques manquent totalement de sens artistique.
Une proposition est une propriété ou un énoncé qui peut avoir une valeur de vérité
vraie (notée V) ou fausse (notée F).
Exemple : " 2 est un nombre impair " est une proposition dont la valeur de vérité est F.

Soit l’ensemble P = {V , F } des valeurs des propositions.


On le munit de trois opérateurs appelés connecteurs logiques : ¬ , ∧ , ∨.
∧ : P x P→P (se lit " et ")
∨ : P x P→P (se lit " ou ")
¬ : P →P (se lit " non ")

Ces connecteurs sont définis en extension par leurs tables de vérité :

P Q ¬P P^Q PvQ
V V F V V
V F F F V
F V V F V
F F V F F

• Nous noterons p = q , le fait la proposition p et la proposition q ont la même valeur de


vérité.
• Le lecteur pourra démontrer à l’aide des tables de vérité par exemple, que ∨ et ∧ possèdent
les propriétés suivantes :

10
p∨q=q∨p
p∧q=q∧p
p ∨ (q ∨ r) = (p ∨ q) ∨ r
p ∧ (q ∧ r) = (p ∧ q) ∧ r
p ∨ (q ∧ r) = (p ∨ q) ∧ (p ∨ r)
p ∧ (q ∨ r) = (p ∧ q) ∨ (p ∧ r)
p∨p=p
p∧p=p
¬¬p = p
¬ (p ∨ q) = ¬ p ∧ ¬ q
¬ (p ∧ q) = ¬ p ∨ ¬ q

Nous notons p ⇒ q , la proposition : ¬ p ∨ q (l’implication).


Table de vérité du connecteur ⇒ :

P Q ¬p∨q
V V V
V F F
F V V
F F V

Il est aussi possible de prouver des " égalités " de propositions en utilisant des
combinaisons de résultats précédents.
Exemple : Montrons que : p ⇒ q = ¬ q ⇒ ¬ p (implication contraposée), par définition et
utilisation évidente des propriétés :
p ⇒ q = ¬ p ∨ q = q ∨¬ p = ¬ (¬ q) ∨¬ p = ¬ q ⇒ ¬ p

2. Algèbre de Boole
On appelle algèbre de Boole tout ensemble E muni de : deux lois de compositions internes
notées par exemple : • et ⊕,
une application involutive f (f2 = Id ) de E dans lui-même, notée
chacune des deux lois • , ⊕ , est associative et commutative,
chacune des deux lois • , ⊕ , est distributive par rapport à l’autre,
la loi • admet un élément neutre unique noté e1,
x∈E, x • e1 = x
la loi ⊕ admet un élément neutre noté e0, x∈Ε, x ⊕ e0 = x
tout élément de E est idempotent pour chacune des deux lois : x∈E, x • x = x et
x⊕x=x
axiomes de complémentarité : ,

11
∀ ∈ , ∙ =

∀ ∈ , =

lois de Morgan :

(x,y) ∈ E2,

x,y) ∈ E2,

Notation des électroniciens

L’algèbre des circuits électriques est une algèbre de Boole minimale à deux éléments :
L’ensemble E = {0,1} muni des lois " • " et " + " et de l’application complémentaire

Formules pratiques et utiles (résultant de l’axiomatique) :

a+1=1
a+0=a
a+a=a

=1

a.1 = a
a.0 = 0
a.a = a

=0
=

Formule d’absorbtion : a+(b.a) = a.(a+b) = (a+b).a = a+b.a = a


Montrons par exemple : a+(b.a) = a
a+(b.a)= a+a.b = a.1+a.b = a.(1+b) = a.1 = a
Le reste se montrant de la même façon.

12
Cette algèbre est utile pour décrire et étudier les schémas électroniques, mais elle sert aussi
dans d’autres domaines que l’électricité. Elle est étudiée ici parce que les ordinateurs actuels
sont basés sur des composants électroniques. Nous allons descendre un peu plus bas dans la
réalisation interne du cœur d’un ordinateur, afin d’aboutir à la construction d’un additionneur
en binaire dans l’UAL.

Tables de vérité des trois opérateurs

3. Circuits booléens ou logiques

Nous représentons par une variable booléenne x appartient à {0,1} le passage d’un courant
électrique. Lorsque x = 0, nous dirons que x est à l’état 0 (le courant ne passe pas)

Lorsque x = 1, nous dirons que x est à l’état 1 (le courant passe)

Une telle variable booléenne permet ainsi de visualiser, sous forme d’un bit d’information
(0,1) le comportement d’un composant physique laissant ou ne laissant pas passer le courant.

Nous ne nous préoccuperons pas du type de circuits électriques permettant de construire un


circuit logique (les composants électriques sont basés sur les circuits intégrés). Nous ne nous
intéresserons qu’à la fonction logique (booléenne) associée à un tel circuit.

3.1 Principaux circuits

Nous proposons donc 3 circuits logiques de base correspondant aux deux lois internes
et à l’opérateur de complémentation involutif.

Le circuit OU associé à la loi " + " :

La table de vérité de ce circuit est celle de l'opérateur +


13
Le circuit ET associé à la loi "•" :

La table de vérité de ce circuit est celle de l'opérateur •


Le circuit NON associé à la loi " ":

la table de vérité est celle de l'opérateur involutif

On construit deux circuits classiques à l’aide des circuits précédents :

L’opérateur XOR = " ou exclusif " :

dont voici le schéma :

14
Table de vérité du ou exclusif :

a b a⊕b
1 1 0
1 0 1
0 1 1
0 0 0

L’opérateur NAND (le NON-ET):

dont voici le schéma :

Table de vérité du Nand :

a b
1 1 0
1 0 1
0 1 1
0 0 1

3.2 Fonction logique associée à un circuit


Un circuit logique est un système de logique séquentielle où la valeur de sortie S (état de la
variable booléenne S de sortie) dépend des valeurs des entrées e1,e2,...,en (états des variables
booléennes d’entrées ei ). Sa valeur de sortie est donc une fonction
S = f(e1,e2,...,en).

15
Pour calculer la fonction f à partir d’un schéma de circuits logiques, il suffit d’indiquer
à la sortie de chaque opérateur (circuit de base) la valeur de l’expression booléenne en cours.
Puis, à la fin, nous obtenons une expression booléenne que l’on simplifie à l’aide des axiomes
ou des théorèmes de l’algèbre de Boole.

Exemple :

En simplifiant S : (a+b).b+ =b+ (formule d’absorption)

b+ =1

3.3 Circuit logique associé à une fonction

A l’inverse, la création de circuits logiques à partir d’une fonction booléenne f à n entrées est
aussi simple. Il suffit par exemple, dans la fonction, d’exprimer graphiquement chaque

16
opérateur par un circuit, les entrées étant les opérandes de l’opérateur. En répétant l’action sur
tous les opérateurs, on construit un graphique de circuit logique associé à la fonction f.

Exemple : Soit la fonction f de 3 variables booléennes, f (a,b,c) = (a+b)+(b.c)

Construction progressive du circuit associé.

1°) opérateur " + " :

2°) branche supérieure de l’opérateur " + " :

3°) branche inférieure de l’opérateur " + " :

17
3.4 Additionneur dans l’UAL

Demi-additionneur

.
Reprenons les tables de vérités du "⊕ " (Xor), du " + " et du " " et adjoignons la table de calcul de
l’addition en numération binaire.

Table comparée des opérateurs booléens

En considérant une addition binaire comme la somme à effectuer sur deux mémoires à un bit,
nous observons dans l’addition binaire les différentes configurations des bits concernés (notés
a et b). Nous aurons comme résultat un bit de somme et un bit de retenue :

18
Si l’on compare avec les tables d’opérateurs booléens, on s’aperçoit que l’opérateur "⊕"
(Xor) fournit en sortie les mêmes configurations que le bit de somme, et que l’opérateur "."
(Et) délivre en sortie les mêmes configurations que le bit de retenue.

Il est donc possible de simuler une addition binaire (arithmétique binaire) avec les deux
opérateurs "⊕" et ".". Nous venons de construire un demi-additionneur ou additionneur sur
un bit. Nous pouvons donc réaliser le circuit logique simulant la fonction complète d’addition
binaire, nous l’appellerons " additionneur binaire "(somme arithmétique en binaire de deux
entiers en binaire).

Schéma logique d’un demi-additionneur

19
Chapitre 4 : Codage numération

1. Codage de l’information

Dans une machine, toutes les informations sont codées sous forme d'une suite de "0" et
(langage binaire). Mais l'être humain ne parle généralement pas couramment le langage
binaire. Il doit donc tout "traduire" pour que la machine puisse exécuter les instructions
relatives aux informations qu'on peut lui donner. Le codage étant une opération purement
humaine, il faut produire des algorithmes qui permettront à la machine de traduire les
informations que nous voulons lui voir traiter.

Le codage est une opération établissant une bijection entre une information et une suite de " 0
" et de " 1 " qui sont représentables en machine. Parmi les codages les plus connus et utilisés,
le codage ASCII (American Standard Code for Information Interchange) étendu est le plus
courant.

Le Code 6 Bit.

• Il permet la codification de 26 = 64 signes.

• 26 lettres majuscules de l'alphabet latin,

• les 10 chiffres 0 à 9

• 12 signes spéciaux et de ponctuation.

• 16 places réservées pour les signes de contrôle

• Un exemple BCDI (Binary coded decimal interchange code) d'IBM.

• Le Code-6-Bit n'est plus utilisé aujourd'hui.

Le Code 7 bit.

• Il permet la codification de 27= 128 signes.

• 84 places fixes,

• 12 places pour les signes nationaux.

• 32 places réservées aux les signes de contrôle.

• Un exemple ISO/IEC 646. (ASCII: American Standard Code for Information


Interchange)

• But: transmission et non traitement des données.

20
Le Code 8 bit

• 28 = 256 signes.

• 64 places réservées pour les signes de contrôle.

• Latin-1: langues de l'Europe occidentale, de l'Amérique, de l'Australie et une partie de


l'Afrique

• Latin- 2 : langues de l'Europe orientale à alphabet latin

• D'autres parties pour les langues slaves avec des lettres cunéiformes, le grec, l'arabe,
le hébreu.

• Sous DOS Le Latin 1 est appelé PC-ASCII.

• Sous Windows ANSI-Code

Code 16 bit ou Unicode

216 = 65536 signes.

Les premières 256 pour les signes du code Latin 1 selon ISO/IEC 8859 Partie 1

Code 32 bit ou UCS

232 = 4 294 967 296 signes. Tous les signes de l'univers.

Les nombres sans signe

Un nombre binaire à n-chiffres est un nombre en base 2 avec évaluation de ses chiffres 0 et 1
par les poids 2n-1,.., 8, 4, 2, 1.
n −1
z= ∑ 0
ak * bk

b = 2 (base), ai = 1 ou 0

Exemple: 1001 = 1.23+0.22+0.21+1.20 = 8 + 0 = 9 (qui est donc z).

Le nombre " dix " s’écrit 10 en base b=10, il s’écrit 1010 en base b=2. Dans la mémoire ce
nombre dix est codé en binaire comme suit:

Une mémoire à n+1 bits (n>0), permet de représenter sous forme binaire (en binaire pur) tous
les entiers naturels de l'intervalle [0, 2n+1 -1].

• soit pour n+1=8 bits, tous les entiers de l'intervalle [0, 255]

21
• soit pour n+1=16 bits, tous les entiers de l'intervalle [0, 65535]

Les nombres binaires signés

Ce codage permet la représentation des nombres entiers relatifs. Le bit le plus élevé est utilisé
pour le signe 0 pour positif et 1 pour négatif. n-1 pour la représentation réelle du nombre.
n−2
n −1
z = − a n −1 * b + ∑ ak * b k

k =0

Exemple: 100101112 est sensiblement = -1* 27 + 0 * 26 +0 *25 +1 * 24 + 0 * 23 + 1 * 22 + 1 *


21 + 1 * 20 = -128+0+0+16+0+4+2+0 = -10510

Exemple du codage en binaire signé des nombres +14 et -14 :

+14 est représenté par 0000...01110 -14 est représenté par 1000...01110

Les nombres entiers relatifs en complément à deux

Comme dans le binaire signé, la mémoire est divisée en deux parties inégales; le bit de
poids fort représentant le signe, le reste représente la valeur absolue avec le codage suivant :

Supposons que la mémoire soit à n+1 bits, soit x un entier relatif à représenter :

si x > 0, alors c'est la convention en binaire signé qui s'applique (le bit de signe vaut 0, les n
bits restants codent le nombre), soit pour le nombre +14 :

+14 est représenté par 0000...01110

si x < 0, alors (3 étapes à suivre) :

• On code la valeur absolue du nombre x, |x| en binaire signé.


• Puis l’on complémente tous les bits de la mémoire (complément à 1 ou complément
restreint). Cette opération est un non logique effectué sur chaque bit de la mémoire.
• Enfin l’on additionne +1 au nombre binaire de la mémoire (addition binaire).

Exemple, soit à représenter le nombre -14 en suivant les 3 étapes :

• codage de |-14|= 14

22
• complément à 1.

• addition de 1

Le nombre -14
14 s'écrit donc en complément à 2 : 1111..10010.

Un des intérêts majeurs de ce codage est d’intégrer la soustraction dans l’opération de codage
et de ne faire effectuer que des opérations simples et rapides (non logique, addition de 1).

Nombre à virgule flottante

Exemple: 12,993 = 1,2993.101 = 1299,3.10-2 etc.

Procédé:

Partie entière: Méthode de division successive

Partie fractionnaire: multiplications par 2 sur les parties fractionnaires successives, en retenant
les valeurs de la partie entièree ainsi obtenue.

Soit à convertir 13,375

Partie entière: 13: division successive et prise des restes en sens inverse : 1310 = 11012

Partie fractionnaire: 0,375: multiplication par 2 sur les parties fractionnaires successives et
prise des parties entières.

*2

0,375 0

0,75 1

(1),5 1

(1),0

23
Soit à convertir 12,322

Partie entière: 1210 = 11002

Partie fractionnaire: 0,322

*2

0,322 0

(0),644 1

(1),288 0

(0),576 1

(1),152 ….

La multiplication ne s'arrête pas.

Signe-Mantisse-Exposant

Représentation semi-algorithmique.
algorithmique.

x = (−1) signe * mantisse* B exposant


Normaliser la mantisse : décaler la position de la virgule à droite ou à gauche pour que la partie entière
de la mantisse ne soit composée que d'un seul chiffre non nul.

en base 10 en base 2 SME en mantisse non normalisée SME en mantisse normalisée

13,375 1101,011 11010,11 * 2-1 1,101011 * 23

24
0,55 0,11 0,11 * 20 1,1 * 2-1

Codification en virgule flottante sur 16 bits.

• 1 bit pour le signe (bit 15)

• 6 bits l'exposant en complément à deux (bit 14 à bit 9)

• 9 bits pour la mantisse (bit 8 à bit 0).

Exemple: 1310 = 1,101011.23

Signe Exposant mantisse

0 000011 001101011

On complète à gauche avec des 0 pour les bits manquants.

2. Numération

Pour des commodités d'écriture, nous utilisons la notation indicée pour représenter la base
d'un nombre en parallèle de la représentation avec la barre au dessus. Ainsi 14510 signifie le
nombre 145 en base dix; 11010112 signifie 1101011 en binaire.

2.1 Opérations en binaire

Nous avons parlé d’addition en binaire ; comme dans le système décimal, il nous faut
connaître les tables d’addition, de multiplication, etc... afin d’effectuer des calculs dans cette
base.

Addition Multiplication

0(1) représente la retenue à reporter.

Exemples de calculs (109+19=12810 =100000002 ) et (22x5=11010=11011102) :

1101101
+ 10011

25
_____________
100000002 =12810
Addition
10110
x 101
____________
10110
10110..
___________
11011102 =11010
Multiplication
Etant donné que le système classique utilisé par chacun de nous est le système décimal, nous
nous proposons de fournir d’une manière pratique les conversions usuelles permettant d'écrire
les diverses représentations d’un nombre entre les systèmes décimal, binaire et hexadécimal.

2.2 Conversions base quelconque en décimal

Voici ci-dessous un rappel des méthodes générales permettant de convertir un nombre en base
b (b>1) en sa représentation décimale et réciproquement.

A.) soit un nombre écrit en base b.

Pour le convertir en décimal (base 10), il faut :

• convertir chaque symbole xk en son équivalent ak en base 10, nous obtenons ainsi la
suite de

chiffres : an,....,a0.

Exemple, soit b=13, les symboles de la base 13 sont : { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C }. Si


le chiffre xk de rang k du nombre s'écrit C, son équivalent en base 10 est ak=12.

• réécrire le nombre comme une somme :

• effectuer tous les calculs en base 10 (somme, produit, puissance).

Exemple :

26

Vous aimerez peut-être aussi