Vous êtes sur la page 1sur 10

Le fonctionnement d’une fonction binaire

Représentation d’un entier relatif en binaire


Pourquoi ? Comment ?

INTRODUCTION

Dans ce chapitre, nous voyons comment les nombres sont représentés dans les ordinateurs avec des 0 et des 1.
Nous introduisons la notion de base, en partant de la notation décimale que nous utilisons ordinairement pour
écrire les nombres entiers. Nous passons par la base cinq puis décrivons la base deux, aussi appelée
représentation binaire. Nous généralisons ensuite aux nombres relatifs en utilisant la notation en complément à
deux, puis aux nombres à virgule, représentés par leur signe, leur mantisse et leur exposant.
Vus de l’extérieur, les ordinateurs et les programmes que nous utilisons tous les jours permettent de mémoriser,
de transmettre et de transformer des nombres, des textes, des images, des sons, etc. Pourtant, quand on les
observe à une plus petite échelle, ces ordinateurs ne manipulent que des objets beaucoup plus simples : des 0 et
des 1. Mémoriser, transmettre et transformer des nombres, des textes, des images ou des sons demande donc
d’abord de les représenter comme des suites de 0 et de 1.
La mémoire des ordinateurs est constituée d’une multitude de petits circuits électroniques qui ne peuvent être,
chacun, que dans deux états. Comme il fallait donner un nom à ces états, on a décidé de les appeler 0 et 1, mais
on aurait pu tout aussi bien les appeler A et B, froid et chaud ou faux et vrai. Une telle valeur, 0 ou 1, s’appelle
un booléen, un chiffre binaire ou encore un bit (binary digit). Un tel circuit à deux états s’appelle un circuit
mémoire un bit et se décrit donc par le symbole 0 ou par le symbole 1. L’état d’un circuit, composé de plusieurs
de ces circuits mémoire un bit, se décrit par une suite finie de 0 et de 1, que l’on appelle un mot. Par exemple, le
mot 100 décrit l’état d’un circuit composé de trois circuits mémoire un bit, respectivement dans l’état 1, 0 et 0.

La représentation des entiers naturels


Depuis le Moyen Âge, on écrit les nombres entiers naturels en notation décimale à position. Cela signifie que,
pour écrire le nombre entier naturel n, on commence par imaginer n objets, que l’on groupe par paquets de dix,
puis on groupe ces paquets de dix objets en paquets de dix paquets, etc. À la fin, il reste entre zéro et neuf
objets isolés, entre
zéro et neuf paquets isolés de dix objets, entre zéro et neuf paquets isolés de cent, etc. Et on écrit cet entier
naturel en notant, de droite à gauche, le nombre d’objets isolés, le nombre de paquets de dix, le nombre de
paquets de cent, le nombre de paquets de mille, etc. Chacun de ces nombres étant compris entre zéro et neuf,
seuls dix chiffres sont nécessaires : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.

Crs élève Entier relatif en binaire Page 1 sur 6


Par exemple, l’écriture 2359 exprime un entier naturel formé de 9 unités, 5 dizaines, 3 centaines et 2 milliers.
Le choix de faire des paquets de dix est peut-être dû au fait que l’on a dix doigts, mais on aurait pu tout aussi
bien décider de faire des paquets de deux, de cinq, de douze, de vingt, de soixante, etc. On écrirait alors les
nombres entiers naturels en notation à position en base deux, cinq, douze, vingt ou soixante. La notation
décimale à position s’appelle donc aussi la notation à position en base dix. En notation binaire, c’est-à-dire en
notation à position en base deux, le nombre treize s’écrit 1101 : de droite à gauche, 1 unité, 0 deuzaine, 1
quatraine et 1 huitaine. L’écriture d’un entier naturel en binaire est en moyenne 3,2 fois plus longue que son
écriture en base dix, mais elle ne demande d’utiliser que deux chiffres : 0 et 1.

Le système décimal
Pour que vous compreniez le fonctionnement du binaire, et des systèmes de comptage
en général (plus communément appelés bases), je vais commencer par faire une petite
réintroduction à la base 10 que vous connaissez tous.

En effet, tout le monde sait compter en base 10 (décimal). Mais comment ça marche ?
Comment est construit notre système ? Pour répondre à cette question à l'apparence
simple, oubliez tout et reprenons depuis le début : comment avez-vous appris à
compter à l'école ?

Vous penserez peut-être que la base 10 vient du fait qu'on a 10 doigts, mais en tout cas
deux choses sont sûres :

 Il y a 10 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
 Avec ces derniers, on peut compter jusqu'à 9.

Et si l'on veut aller au-delà de 9, il faut changer de rang.

Cela signifie que si le rang des unités est plein, il faut passer à celui des dizaines, puis
des centaines, milliers et j'en passe.

Par exemple : à 19, le rang des unités est "saturé" (plein), car il contient le chiffre 9, et
il n'y a pas (dans la base 10) de valeur plus élevée. Il faut donc incrémenter le rang
périphérique puis réinitialiser l'état de celui des unités. Ce qui signifie : j'ai 19, je ne
peux pas mettre plus de 9 à droite, donc j'ajoute 1 à celui de gauche et je remets à zéro
celui de droite.

Comme je disais tout à l'heure, le nombre entier va être composé de rangs (unités,
dizaines, centaines, etc). Chaque rang vaut le rang précédent multiplié par l'indice de la
base. Une centaine vaut dix dizaines, et une dizaine vaut 10 unités. Par exemple, dans
l'image ci-dessus, on peut voir le nombre 185 10 (ici, le 10 signifie qu'il s'agit d'un nombre,
en base 10). Dans ce nombre, on peut voir trois rangs : centaines, dizaines et unités.
Pour n'importe quelle base, la valeur d'un rang est égale à b n, où b est l'indice de la base
(ici, 10) et n la position du rang. Ici, les unités ont la position 0, les dizaines la position 1
et les centaines la position 2.
Crs élève Entier relatif en binaire Page 2 sur 6
Nous pouvons donc écrire : 185=1∗102+8∗101+5∗100185=1∗102+8∗101+5∗100
Ce que je viens de faire, c'est décomposer 185 en puissance de 10 (unités, dizaines,
centaines, etc).

Un nombre est égal à la somme des valeurs de ses rangs, et on peut décomposer
n'importe quel nombre en puissance de sa base.

(185)10 = 18510 = 185 10

Le binaire
Le binaire, c'est le système de comptage des ordinateurs. Pourquoi le binaire et pas le
décimal comme les humains ? Et bien c'est très simple : un ordinateur est composé de
circuits électroniques, et donc de composants électriques. Le plus simple pour compter
est donc d'utiliser un système en base 2 (le binaire) car on peut représenter ses deux
valeurs possibles (0 et 1) par un signal électrique : 1, y'a du courant, 0, y'en a pas
(c'est la version simple).

Je vous ai parlé ci-dessus de rangs. En binaire, c'est pareil à la différence qu'on utilise
le terme bit, qui est la contraction de "binary digit", littéralement "chiffre binaire". Par
exemple, le nombre 10011 occupe 5 bits. Là où tout se complique, c'est que comme je l'ai
expliqué, chaque rang en binaire ne peut avoir que deux valeurs (binaire = base 2)
différentes : 0 ou 1. Pour la base 10, chaque rang représente une puissance de 10, pour
la base 2, chaque rang occupe une puissance de 2. Voici comment compter en binaire
jusqu'à 10 :

Nombre en Nombre en
Le pourquoi du comment
décimal binaire

0 0 Pour l'instant, ça va.


1 1 Là encore, c'est simple.
Le premier rang ayant été rempli, on passe
2 10
au suivant !
3 11 On re-remplit le rang 1.
Le rang 2 est plein, le rang 1 aussi, qu'à
4 100
cela ne tienne, on passe au suivant.
5 101
6 110 On continue en suivant la même méthode.
7 111
8 1000 On commence le rang 4.

Crs élève Entier relatif en binaire Page 3 sur 6


9 1001
On continue comme tout à l'heure.
10 1010
...
Retenez juste ceci : entamer le rang suivant quand l'actuel est plein.
À faire vous-même 1
Combien de valeurs peut-on coder avec 1 bit ? 2 ; Combien de valeurs peut-on coder avec 2 bits ? 4
Combien de valeurs peut-on coder avec 3 bits ? 8 ; Combien de valeurs peut-on coder avec n bits ? 2n
Comme on a pu le voir, compter jusqu'à 10 ou 20 reste aisé, mais imaginons un instant que je vous
demandasse d'écrire 185 en binaire ? Vous allez faire chaque rang, un par un ? Ouais

Pré requis :
 Addition binaire
 Division euclidienne

I/ Les bases 2, 10 et 16 : principe commun

 La base 2 ou base binaire très utilisée en A.I.I (Automatique et Informatique Industrielle) est la base de
la logique booléenne ou algèbre de Boole.
 La base 10 (base décimale). Elle est considérée comme la base universelle. De ce fait nous l’utilisons
presque tout le temps.
 La base 16 (base hexadécimale). Cette base est très utilisée dans le monde de la micro-informatique et
des automates. Elle permet de coder un mot (16 bits) sur 4 variables hexadécimales. Elle base fait
intervenir tous les chiffres de la base 10 complétée par les 6 premières lettres de l’alphabet.

a) Système base 2 ou système binaire


Il est formé par 2 symboles 0 et 1

Exemple :

Exercice I.1 : trouver la représentation en base 10 du nombre 10011101 donné en base 2. 157

Exercice I.2 : C’est en 11110010000 qu’a été démontré le théorème fondamental de l’informatique. Exprimer
ce nombre en base dix.
1936

b) Système base 10
Crs élève Entier relatif en binaire Page 4 sur 6
Il est formé par 10 Symboles 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9

Exemple : 2023 = 2023

c) Système base 16
Il est formé par 16 symboles 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F (A pour 10, B pour 11 ….)

Exemple : ABCD = 43 981

Exercice I.3 : Trouver la représentation en base dix du nombre 4E2C (en base seize).
20012

Exercice I.4 : Trouver la représentation en base dix des nombres ABCD (en base seize) et281EF (en base
seize).
43 981 ; 164 335

II/ Convertir un entier naturel en binaire

Sur un octet (8 bits), on peut représenter les nombres entiers naturels allant de 0 à 255.
Sur deux octets (16 bits), on peut représenter les nombres entiers naturels allant de 0 à 65535.
Sur quatre octets (32 bits), on peut représenter les nombres entiers allant de 0 à 4 294 967 296.
Sur huit octets (64 bits) on peut représenter tous les nombres entiers naturels allant de 0 à 1,8*1019.

Méthode 1 : les divisions euclidiennes successives


Exemple :

Exercice II.1 : trouver l’écriture binaire du nombre 2019.

2019 2
1 1009 2
1 504 2
Crs élève Entier relatif en binaire Page 5 sur 6
0 252 2
0 126 2
0 63 2
1 31 2
1 15 2
1 7 2
1 3 2
1 1 2
1 0
2019 = 11111100011
2023 = 11111100111

Méthode 2 : par tableau de décomposition


Exemple :
Valeur décimale à décomposer : 173
7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2
128 64 32 16 8 4 2 1
1 0 1 0 1 1 0 1

La puissance de 2 immédiatement en dessous de 173 est 27 soit 128. on écrit 1 en dessous de 128 et il reste 45
La puissance de 2 immédiatement en dessous de 45 est 32 Soit 25 on écrit 1 en dessous de 32 et il reste 13.

173=¿ 27+25+23+22+20

Donc (173)10=¿ 102+7*101+3*100

Exercice II.2 : trouver l’écriture binaire du nombre 188. 10111100


Valeur décimale à décomposer : 188
7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2
128 64 32 16 8 4 2 1
1 0 1 1 1 1 0 0

Exercice II.3 : Traduire en binaire l’année de construction des premiers ordinateurs (1948).
Valeur décimale à décomposer : 1948
10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2
1024 512 256 128 64 32 16 8 4 2 1
1 1 1 1 0 0 1 1 1 0 0

Bilan : Nous savons maintenant représenter un entier naturel en binaire.


III/ Convertir un entier relatif en binaire
Nous allons travailler sur 1 octet soit 8 bits mais cela se généralise sur 2 octets, 4 octets, 8 octets ….

Sur un octet nous pouvons coder les nombres entiers relatifs compris entre -27 et 27-1 soit -128 et 127.

Crs élève Entier relatif en binaire Page 6 sur 6


(Plus généralement, avec des mots de n bits, on écrit les entiers relatifs compris entre -2n et 2n-1).

A/ Intuitivement
Dans la représentation en binaire signé, le bit de poids fort sert à représenter le signe (0 pour un entier positif et
1 pour un entier négatif), les 7 autres bits représentent la valeur absolue du nombre en binaire pur.
Utilisons + 12 et – 12
Valeur décimale à décomposer : 12
7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2
128 64 32 16 8 4 2 1
0 0 0 0 1 1 0 0
Bit Bit
poids poids
fort faible

Donc + 12 s’écrit 00001100 et – 12 s’écrit 10001100


Le problème est que 0 aurait 2 écritures : 00000000 et 10011000.

Calcul :
+12 00001100
−12 +100011001
0 ≠ 10011000

Pour ces raisons la méthode du bit de signe seul n'est (presque) plus utilisée. Une méthode un peu plus
efficiente consiste, pour coder -n, à prendre le complément à un du codage de n, c'est à dire de remplacer
chaque 0 par un 1 et inversement. Si l'on prend toujours l'exemple du codage sur un octet, on aura toujours un
nombre entre -127 et +127 et toujours deux représentations du zéro, mais l'addition est maintenant plus facile à
calculer. On peut démontrer, en effet, que si l'on ajoute un nombre a et le complément à un d'un nombre b, on
trouve a-b-1 (aux problèmes de dépassement près). Pour cette raison, la méthode (quasi) universellement
choisie aujourd'hui pour représenter les entiers relatifs (positifs et négatifs) est celle du complément à deux : on
représente un nombre négatif en prenant son complément à un, puis en ajoutant un à l'écriture binaire obtenue.
Dans le cas d'un codage sur un octet, on peut ainsi représenter les nombre entiers de -128 à +127.

Exercice III.1 : Donner l’écriture binaire de −108.


Valeur décimale à décomposer : - 108
7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2
128 64 32 16 8 4 2 1
1 1 1 0 1 1 0 0
Bit Bit
poids poids
fort faible

108 s’écrit 01101100 et -108 s’écrit 11101100.

B/ Complément à 1
On remplace chaque 0 par un 1 et inversement.

Donc + 12 s’écrit 00001100 et – 12 s’écrit 10001100


Crs élève Entier relatif en binaire Page 7 sur 6
Le problème est que 0 aurait 2 écritures : 00000000 et 11111111.

Calcul :
+12 00001100
−12 + 11110011
0 ≠ 11111111

C/ Complément à 2
On prend son complément à un, puis on ajoute un à l'écriture binaire obtenue.

Calcul :
+12 00001100
11110011 Complément à 1
+1
−12 11110100 Complément à 2
0 100000000

Comme nous sommes sur 8 bits, le « 1 » qui est devant disparait et il n’y a plus qu’une écriture de 0.
Donc – 12 s’écrit 11110100.

Exercice III.2 : en utilisant la méthode du complément à 2, donner l’écriture binaire du nombre −108.
01101100 donne le complément 10010011. En ajoutant 1 à celui-ci on a 101101100. En additionnant les 3
valeurs on a 111100110.

D/ Autre méthode
On veut coder −12 sur 8 bits, la plage des nombres est de −27 à 27−1 soit de −128 à 127 .
Voici la « frise binaire »

128 possibilités 128 possibilités


négatives positives ou nulles

On constate que −12 revient 256 « crans » plus loin donc −12 correspond à −12+256 soit 244.

Valeur décimale à décomposer : 244


7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2
128 64 32 16 8 4 2 1
1 1 1 1 0 1 0 0

Donc – 12 s’écrit 11110100.


Crs élève Entier relatif en binaire Page 8 sur 6
Exercice III.3 : donner l’écriture binaire du nombre −108.
Valeur décimale à décomposer : 148
7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2
128 64 32 16 8 4 2 1
1 0 0 1 0 1 0 0

Exercice III.4 : à l’aide de la méthode de votre choix et en adaptant le nombre de bits, coder −2019 .

Valeur décimale à décomposer : 2019


10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2
1024 512 256 128 64 32 16 8 4 2 1
1 1 1 1 1 1 0 0 0 1 1

2019 correspond à 11111100011.

On passe au complément à 1 en inversant les 0 et les 1 : 00000011100.

Et on rajoute 1 ce qui donne 1111100000011101.


Donc −¿2019 correspond à 1111100000011101

Ou
Valeur décimale à décomposer : 63517
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1
1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1

63517 donne 1111100000011101.


Donc −¿2019 correspond à 1111100000011101.

Valeur décimale à décomposer : 2024


10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2
1024 512 256 128 64 32 16 8 4 2 1
1 1 1 1 1 1 0 1 0 0 0

Le complément de 2024 est 0000000000010111. On ajoute 1 et ça donne 1111100000011000.

Crs élève Entier relatif en binaire Page 9 sur 6


Ou
Valeur décimale à décomposer : 63512
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1
1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0

Sources :
 http://ressources.unisciel.fr/algoprog/s00aaroot/aa00module1/res/%5BDowek-
ISN2014%5DInformatique_et_Sciences_du_Numerique.pdf
 https://delmas-rigoutsos.nom.fr/documents/YDelmas-ordinateurs_et_systemes/code-negatifs.html

Crs élève Entier relatif en binaire Page 10 sur 6

Vous aimerez peut-être aussi