Extension de signe

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Sasukedu77
Membre Naturel
Messages: 53
Enregistré le: 15 Jan 2011, 00:12

Extension de signe

par Sasukedu77 » 25 Oct 2012, 14:09

Bonjour,

En architecture des ordinateurs, je voulais savoir une méthode pour savoir si on doit rajouter des "1" ou des "0" pour effectuer donc l'extension de signe. Pourriez vous aussi me donner un exemple avec votre explication svp ?

Merci :)



homeya
Membre Relatif
Messages: 218
Enregistré le: 05 Mar 2012, 11:20

par homeya » 25 Oct 2012, 20:48

Bonsoir,

L'extension de signe se pratique pour les nombres binaires suivant la notation en complément à deux. Elle consiste à recopier le bit de poids fort (le plus à gauche) sur autant de bits que nécessaire.
Par exemple: -5 = 11111011 sur 8 bits = 1111111111111011 sur 16 bits
3 = 00000011 sur 8 bits = 0000000000000011 sur 16 bits

Est-ce suffisamment clair ?

Cordialement.

Sasukedu77
Membre Naturel
Messages: 53
Enregistré le: 15 Jan 2011, 00:12

par Sasukedu77 » 28 Oct 2012, 16:06

homeya a écrit:Bonsoir,

L'extension de signe se pratique pour les nombres binaires suivant la notation en complément à deux. Elle consiste à recopier le bit de poids fort (le plus à gauche) sur autant de bits que nécessaire.
Par exemple: -5 = 11111011 sur 8 bits = 1111111111111011 sur 16 bits
3 = 00000011 sur 8 bits = 0000000000000011 sur 16 bits

Est-ce suffisamment clair ?

Cordialement.


Merci d'avoir répondu.
Pour ton exempe, j'ai compris mais par exemple pour celui-ci :

Donnez leur représentation décimale s'ils sont codés sur 16 bits signés de 11111111 et 10110110

Comment sait-on que pour les 2 exemples ci-dessus, le bit de poids fort est de 0 ? Pourquoi pas de 1 ?

homeya
Membre Relatif
Messages: 218
Enregistré le: 05 Mar 2012, 11:20

par homeya » 28 Oct 2012, 19:49

Le bit de poids fort est celui le plus à gauche. Si il vaut 1, c'est que le nombre est négatif. Donc, pour 11111111 et 10110110, on a affaire à deux nombres négatifs. Pour les convertir en décimal, il faut d'abord les transformer en leur opposé (je suppose qu'ils sont codés en notation en complément à 2, ce qui est plus que probable), c'est-à-dire inverser tous leurs bits et leur ajouter 1.
Ainsi, 11111111 devient 00000001 qui vaut 1 en décimal. Et 10110110 devient 01001010 soit 74 (si je ne me suis pas trompé). 11111111 et 10110110 valent donc respectivement -1 et -74.

Sasukedu77
Membre Naturel
Messages: 53
Enregistré le: 15 Jan 2011, 00:12

par Sasukedu77 » 28 Oct 2012, 20:28

homeya a écrit:Le bit de poids fort est celui le plus à gauche. Si il vaut 1, c'est que le nombre est négatif. Donc, pour 11111111 et 10110110, on a affaire à deux nombres négatifs. Pour les convertir en décimal, il faut d'abord les transformer en leur opposé (je suppose qu'ils sont codés en notation en complément à 2, ce qui est plus que probable), c'est-à-dire inverser tous leurs bits et leur ajouter 1.
Ainsi, 11111111 devient 00000001 qui vaut 1 en décimal. Et 10110110 devient 01001010 soit 74 (si je ne me suis pas trompé). 11111111 et 10110110 valent donc respectivement -1 et -74.


Merci d'avoir répondu :)

Cependant je sais comment les convertir mais ici ils sont codés sur 8 bits. On les veut sur 16 bits. Ce que je voudrais savoir, c'est si il faut rajouter des 0 ou des 1 pour justement les coder en 16 bits. Et après les avoir mis en 16 bits, les convertir en décimale (et dans ce cas là, ce n'est pas -1 et -74).

homeya
Membre Relatif
Messages: 218
Enregistré le: 05 Mar 2012, 11:20

par homeya » 28 Oct 2012, 20:40

Pour les coder sur 16 bits, il suffit d’étendre leur bit de poids fort (donc le plus à gauche) sur les 8 bits supplémentaires. Dans les deux cas, c'est un 1 que l'on va étendre.
Ainsi: 11111111 devient 1111111111111111 et 10110110 devient 1111111110110110.
Même codés sur 16 bits, ces deux nombres valent toujours -1 et -74, ce qui est heureux !

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 57 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite