Des notes destinées à éclaircir certains points
ou à apporter d'intéressants suppléments d'information
sont programmées pour apparaître lorsqu'on passe le curseur de souris
sur des icônes telles que
          
Pour des raisons de sécurité, certains navigateurs
bloquent l'apparition de ces notes (programmées en JavaScript) .
Des précieuses informations, exercices, réponses, aidant à comprendre,
à se repérer, à étendre ses connaisances sont alors perdues.

AUTORISEZ DONC VOTRE NAVIGATEUR A OUVRIR CES SCRIPTS !

Ce site n'a aucun but commercial !

Sommaire de la page
Sujets traités dans cette page
Lien local
Résumé de la page
Convention "Bit de Signe"
Convention "Coplément à Deux" (Résumé)
Convention "Coplément à Deux" (Développement)
Exercices

Pour revenir, cliquer sur
en haut ou bas de pge.

Représentation binaire
des
Nombres Entiers Relatifs
(Entiers Positifs ou Négatifs)
Accueil

du site

Choix par Menu ou Parcours Séquentiel
Généralités
  
Suite : Nombres réels

 

Résumé de cette page

Formats binaires

Les données numériques binaires sont groupées en "mots" de 8 bits (octets), ou 16 bits ,32 bits,64 bits, etc.
On parlera de format : 8, 16, 32, 64 bits

Voici un octet : 01100111
Que l'on écrira parfois en groupant les bits par blocs plus petits pour en faciliter la lecture.
01100111 == 0110 0111

Conventions de signe

Il existe deux conventions pour représenter les nombres entiers relatifs en notation binaire.

  • La convention dite : « Par bit de signe »
  • La convention dite : « Par complément à 2n »
"n" étant le nombre de bits du format utilisé.

La convention par "complément à 2n" est parfois improprement nommée "Complément à 2"

1° Convention "Bit de signe"


Dans cette convention, et par définition, un nombre binaire sera :

  • Positif   si son premier bit à gauche (bit le plus signifiant) est "0",
  • Négatif si son premier bit à gauche est : "1"

Bit le plus signifiant : MSB ( Most Significant Bit  )
MSB = 1 Nombre négatif
MSB = 0 Nombre positif

Exemples pour un format de 1 octet

Binaire
Décimal
00000000
+
0
00000001
+
1
00000010
+
2
00000011
+
3
00000100
+
4
etc...
...
...
01111101
+
125
01111110
+
126
01111111
+
127
10000000
-
0
10000001
-
1
10000010
-
2
10000011
-
3
10000100
-
4
etc...
...
...
11111101
-
125
11111110
-
126
11111111
-
127

Cette notation doit être employée avec beaucoup de précautions !

  1. La valeur absolue du nombre s'écrit sur 1 bit de moins que le format attribué.
    (perte de précision).

  2. Il y a deux zéros : un "positif" un "négatif" !

  3. Le pire ... les opérations ne se font pas simplement... exemple :
 
Binaire 8 Bits
Décimal
 
Nombre 1
00000100
+ 4
 
Nombre 2
10000011
- 3
 
Addition classique
10000111
- 7
Faux !
Vérifiez sur le tableau ci-dessus.
Cette conventionne peut être employée qu'à condition de redéfinir les méthodes classiques
d'addition et de soustraction !
Laborieux !

2° - Convention "Complément à 2n"
("n" étant le nombre de bits du format utilisé).
Dite aussi "Complément à 2"


Cette méthode permet d'utiliser les opérations classiques sans problème.

Définition
On nomme «Complément à 1» d'un nombre binaire
Le nombre obtenu en remplaçant
tous ses '1' par des zéros et tous ses zéros par des '1'.
Exemple :
 n = 0110101
~n = 1001010
En symbolisant "Complément à 1 de n" par ~n
La convention :
  1. Un nombre binaire sera Positif  si son premier bit à gauche,
    (le bit le plus signifiant : MSB ) est "0",

  2. Par définition : l'opposé d'un nombre N sera : -N = ~N + 1

    Exemple : N = 00110110 (décimal : +54)
             ~N = 11001001
                       + 1
            ---------------
             -N = 11001010  (décimal : -54)

Un exemple dans le format 8 bits.

Binaire
Décimal
00000000
0
0
00000001
+
1
00000010
+
2
00000011
+
3
00000100
+
4
etc...
...
...
01111101
+
125
01111110
+
126
01111111
+
127
10000000
-
128
10000001
-
127
10000010
-
126
10000011
-
125
etc...
...
...
11111100
-
4
11111101
-
3
11111110
-
2
11111111
-
1

Constatez les avantages de cette convention d'écriture des binaires.:
  • Les nombres positifs ont un MSB = 0 et les négatifs MBS=1
  • La valeur absolue du nombre s'écrit sur la totalité des bits de l'octet.
  • Il n'y a qu'un seul zéro : 00000000
  • Les opérations "Somme" ou "Soustaction" opèrent normalement

Si ces informations sur ce thème vous suffisent :
Suite du cours "Numération" (Représentation binaire des nombres Réels) :
OU : Sommaire "Numération"

Sinon, explications et des développements de ce qui précède suivent ci-dessous.
En particulier pour le "Complément à 2n"

Ecriture binaire des nombres entiers relatifs
dans la convention dite du "Complément à 2n "
Justification.

Répétons la convention d'écriture des nombres en "Complément à 2n" pour la justifier rigoureusement.

  1. Un nombre binaire sera Positif  si son premier bit à gauche,
    (le bit le plus signifiant : MSB ) est "0",

  2. Par définition : l'opposé d'un nombre N sera : -N = ~N + 1

    Exemple : N = 00110110 (décimal : +54)
             ~N = 11001001
                       + 1
            ---------------
             -N = 11001010  (décimal : -54)

Dans le format 8 bits additionnons un nombre binaire et son complément à 1
N = 10010110 bin
  + 01101001 bin
----------------
11111111


N + ~N = 11111111 bin = 28-1déc.
Formule que nous pouvons étendre à tout format à n bits.
N + ~N = 2n-1 déc.

soit, après des changements de membre :
N + (~N + 1) = 2ndéc.

Pourquoi "Complément à 2n ?

La quantité (~N + 1) est "ce qu'il faut ajouter à N pour obtenir 2n"
C'est la raison pour laquelle on appelle
(~N + 1)le complément de N à 2n
Ce qui a donné le nom à cette convention d'écriture.
"Complément à deux" est plus souvent utililsé, mais, à mon avis, incorrect.

Mais... en groupant les bits pour mieux les compter
28 = 1 0000 0000
bin

Le "1" est "sorti" du format 8 bits.
Sur 8 bits, le résultat réel est 00000000

N + (~N + 1) = 28déc.
devient
N + (~N + 1) = 0
et pour finir

(~N + 1) = - N
L'opposé d'un nombre s'ontient en ajoutant "1"
au complément à 1 de ce nombre
Résumons

(Complément à 1 de N) +1 = - N

(Complément à 2n de N) = (Complément à 1 de N) + 1

(Complément à 2n de N) = - b

L'opposé d'un nombre s'ontient en ajoutant "1"
au complément à 1 de ce nombre

(~N + 1) = - N

En appliquant cette règle, j'obtiens le tableau suivant.
(binaires au format 8 bits)

Binaire
Décimal
00000000
0
0
00000001
+
1
00000010
+
2
00000011
+
3
etc...
...
...
01111101
+
125
01111110
+
126
01111111
+
127
10000000
-
128
10000001
-
127
10000010
-
126
10000011
-
125
etc...
...
...
11111101
-
3
11111110
-
2
11111111
-
1

Exemples :

 
Binaire 4 Bits
Décimal
Remarques
Zéro
0000
0
 
Nombre x
0101
+ 5
 
- x
1011
- 5
Par définition

 0000
-0101

-------
  1011

N.B. La soustraction binaire se fait comme en numération décimale : avec retenues et reports.
Exemple :
 0000
-0101

-------
 1011

En soustrayant les bits à droite de 0000 - 0101
on déclare : 0 - 1 = 1 je retiens 1 que je reporte sur le zéro suivant de 0000,
et ainsi de suite ...
Arrivés au bit le plus à gauche, 1 + 1 = 0 je retiens 1
que je ne reporte pas puisque je sors du format 4 bits.

On peut ainsi construire le tableau suivant :

Binaire
Décimal
Hexadécimal
0111
+ 7
7
0110
+ 6
6
0101
+ 5
5
0100
+ 4
4
0011
+ 3
3
0010
+ 2
2
0001
+ 1
1
0000
0
0
1111
- 1
F
1110
- 2
E
1101
- 3
D
1100
- 4
C
1011
- 5
B
1010
- 6
A
1001
- 7
9
1000
- 8
8

Ce code est moins directement compréhensible pour les nombres négatifs,
mais les opérations se font de la même manière pour les positifs comme pour les négatifs
(ce qui est primordial pour les processeurs de calcul).

 
Binaire 4 Bits
Décimal
 
Nombre 1
0100
+ 4
 
Nombre 2
1101
- 3
Voir tableau précédent
Somme
0001
+ 1
Exact !

Avec 8 bits :
Binaire
Décimal
Hexadécimal
0111 1111
+ 127
7F
0111 1110
+ 126
7E
...
...
...
0000 0001
+ 1
1
0000 0000
0
0
1111 1111
- 1
FF
1111 1110
- 2
FE
...
...
...
1000 0001
- 127
81
1000 0000
- 128
80

Avec 16 bits :
Binaire
Décimal
Hexadécimal
Formules
0111 1111 1111 1111
+ 32 767
7FFF
2(16-1)- 1
0111 1111 1111 1110
+ 32 766
7FFE
 
...
...
...
 
0000 0000 0000 0001
+ 1
1
 
0000 0000 0000 0000
0
0
 
1111 1111 1111 1111
- 1
FFFF
 
1111 1111 1111 1110
- 2
FFFE
 
...
...
...
 
1000 0000 0000 0001
- 32 767
81
- 2(16-1)+ 1
1000 0000 0000 0000
- 32 738
80
- 2(16-1)

Lorsque l'on écrit un nombre binaire pourvant prendre des valeurs positives ou négatives (entier relatif),
il est indispensable d'en préciser le format (nombre de bits) dans lequel il est écrit.

Exemple:
Le nombre 1111 représente, en écriture décimale :

  • le nombre entier 15 si on le considère comme écrit en binaire naturel ; quel que soit le format.
  • le relatif - 1 si on le considère écrit en binaire 4 bits convention du complément à deux;
  • le relatif - 7 si on le considère écrit en binaire 4 bits convention du bit de signe;
  • le nombre relatif + 7 si on le considère écrit en binaire 16 bits convention du complément à deux.


Exercices

1° Question.
N=0110 1101 1001 0010
(les bits sont groupés par 4 pour un meilleur repérage visuel).
N est-il positif ou négatif.
?
Quelle est la valeur en binaire de -N ?
Réponses ici

2°Question.
Ecrivez -128déc. (dans la convention du complément à 2n)
en binaire 8 bits puis en binaire 12 bits.
Réponses ici

3° Question.
Quelle est la valeur en décimal du nombre EAF2 écrit en hexadécimal dans un format 16 bits
et dans la convention du encomplément à 2n ?
Réponses ici

Complément à 2n et bit de signe

Vous observez dans la liste ci-dessus que les nombres positifs on un MSB de 0
et les nombres négatifs un MSB de 1

Ceci pourrait vous faire croire que cette convention du "complément à 2n"
est la même que celle du "bit de signe".

Il n'en est rien !
Comparez les deux tableaux : ils sont très différents.

Complément à 2n
Binaire
Décimal
00000000
0
0
00000001
+
1
00000010
+
2
00000011
+
3
etc...
...
...
01111101
+
125
01111110
+
126
01111111
+
127
10000000
-
128
10000001
-
127
10000010
-
126
10000011
-
125
etc...
...
...
11111101
-
3
11111110
-
2
11111111
-
1
Bit de signe
Binaire
Décimal
00000000
0
0
00000001
+
1
00000010
+
2
00000011
+
3
etc...
...
...
01111101
+
125
01111110
+
126
01111111
+
127
10000000
-
0
10000001
-
1
10000010
-
2
10000011
-
3
etc...
...
...
11111101
-
125
11111110
-
126
11111111
-
127

 

Choix par Menu ou Parcours Séquentiel
Généralités
  
Suite : Nombres réels
Menu "Numération"

Numération binaire et hexadécimale. Entiers Naturels
Représentation binaire des Nombres Entiers Relatifs
Représentation des Nombres réels
Représentation de caractères alphanumériques
Représentation d'états physiques
Représentation de grandeurs analogiques. Numérisation.
Accueil

du Site