Pages

Ads 468x60px

jeudi 29 septembre 2011

Nombres signés


Représentation par leur valeur absolue et leur signe

C'est naturellement la première représentation qui vient à l'esprit. Il suffit d'affecter un bit pour le signe et d'attribuer par convention la valeur 0 au signe + et la valeur 1 au signe -.

Ainsi le nombre +32 s'écrira dans le système binaire :
nombre signé positif
et le nombre -32 :
nombre signé négatif
Autres exemples :
Le nombre + 9,750 s'écrit :
nombre signé positif à vigule flotante
et - 9,750 :
nombre signé négatif à virgule flotante

Représentation dans le code du complément restreint

Nous allons d'abord définir ce qu'est le complément restreint. Pour cela il faut tenir compte du format de la donnée et de la base dans laquelle elle est exprimée.
Exemples :
Soit l'information (453)10 ; son format est de 3 caractères et la base utilisé est 10.
La valeur maximale que l'on peut exprimer dans ce format est :
9 9 9
La différence qui existe entre cette valeur maximale et 453 s'appelle le complément restreint.
complément à 9
On le nomme aussi complément à 9 car la base utilisée est 10.
Cette notion de complément restreint se retrouve avec n'importe quelle base utilisée et plus particulièrement en binaire :
complément restreint de (1001)2
complément à 1
complément restreint de (F0A8)16
complément restreint pour l'hexadecimal
Si nous reprenons l'exemple du binaire, il n'est même pas nécessaire d'exécuter une opération de soustraction pour obtenir ce complément restreint on s'aperçoit qu'il suffit de transformer tous les 1 en 0 et vice versa pour l'obtenir.
100110(2) à pour complément restreint : 011001
Certaines machines utilisent ce code pour la représentation des nombres signés. Il est alors appelé code du complément à 1.
Ainsi le nombre + 25 sera représenté de la manière suivante :
nombre 25 signé positif
et - 25 :
nombre -25 en complément restreint
CR = Complément Restreint.

Représentation dans le code du complément vrai

Comme pour le complément restreint, nous allons définir ce qu'est le complément vrai d'un nombre.
Le complément vrai d'un nombre est la valeur qu'il faut ajouter à ce nombre pour obtenir la valeur maximale + 1 que l'on peut exprimer (en tenant compte du format et de la base utilisés).

Exemples :

Calcul du complément vrai de (453)10
Valeur maximale ===>   999
Valeur maximale + 1 ===>   1 000
Complément vrai :
complément à 2
Calcul du complément vrai de (8AF)16
Valeur maximale ===>   FFF
Valeur maximale + 1 ===>   1 000
Complément vrai :
complément vrai
On peut aussi obtenir le complément vrai d'un nombre en calculant d'abord son complément restreint et en ajoutant ensuite 1.

Exemples :
complément vrai de 453
Un exemple en binaire :
complément vrai de 1001 en base 2

Restons en binaire (base 2) et appliquons une autre méthode pour traduire un nombre encomplément à 2.
(le complément vrai est également appelé complément à 2)

On part du bit de poids le plus faible (bit de droite) :
===> si c'est un zéro, on recopie 0 jusqu'au premier 1 rencontré,
===> si c' est un "1", on garde ce premier 1.

Ensuite on inverse tous les bits après le premier 1 rencontré à partir de la droite.
Attention si le bit le plus à droite est un 1, c'est aussi le premier 1 rencontré !Exemple :
(42)10 = (101010)2 ===> le bit le plus à droite est un 0

0 ==> 0   on conserve le zéro
1 ==> 1   premier 1 rencontré est conservé
0 ==> 1   inversion des bits après le premier 1 rencontré
1 ==> 0
0 ==> 1
1 ==> 0

Le nombre (42)10 = (101010)2 s'écrit en complément vrai :
010110

En utilisant la méthode du complément restreint + 1 :
complément restreint + 1 de 42 en base 2

Un autre exemple :
(59)10 = (111011)2 ===> le bit le plus à droite est un 1

1 ==> 1   premier 1 rencontré est conservé
1 ==> 0   inversion des bits après le premier 1 rencontré
0 ==> 1
1 ==> 0
1 ==> 0
1 ==> 0

Le nombre (59)10 = (111011)2 s'écrit en complément vrai :
000101

En utilisant la méthode du complément restreint + 1 :
complément restreint + 1 de 59 en base 2
Complément vrai = complément restreint + 1

En résumer pour l'arithmétique binaire :

Lorsque l'on veut représenter un nombre avec son signe (nombre signé) la solution la plus simple consiste à rajouter un bit sur la gauche de la valeur absolue de ce nombre.
Par convention ce bit sera à 0 pour représenter un nombre positif
et à 1 pour représenter un nombre négatif.

0 1 1 0 signifie + 110 ===> (+ 6)10
1 1 1 0 signifie - 110 ===> (- 6)10

Ce système intéressant par sa simplicité a pour inconvénient de présenter deux zéros.

0000 ==> + 0
1000 ==> - 0.
Pour faciliter le travail des machines informatiques et pour des circuits électroniques simplifiés on représente un nombre signé en complément à 1 (complément restreint) ou en complément à 2 (complément vrai = complément restreint +1).
La représentation en complément à 2 (la plus répandu) à pour avantage de ne présenter qu'un seul zéro.
Le bit le plus à gauche sera représentatif du signe :
0 pour un nombre positif
1 pour un nombre négatif.
Le tableau suivant donne un aperçu des différentes représentations pour un nombre compris entre - 128 et + 127.

Tableaux représentant des nombres signés

Exemple sur un octet :
image tableau nombres signés

Aucun commentaire:

Enregistrer un commentaire