web-dev-qa-db-fra.com

Comment représenter un nombre négatif avec une fraction en complément à 2?

Je veux donc représenter le nombre -12.5. Donc 12,5 équivaut à:

001100.100

Si je ne calcule pas la fraction, c'est simple, -12 est:

110100

Mais qu'est-ce que -12,5? est-ce 110100.100? Comment puis-je calculer cette fraction négative?

21
Tom

Avec les systèmes de nombres décimaux, chaque position (ou colonne) numérique représente (lecture d'un nombre de droite à gauche): unités (qui est 10 ^ 0), dizaines (c.-à-d. 10 ^ 1), centaines (c.-à-d. 10 ^ 2), etc.

Avec des nombres binaires non signés, la base est 2, ainsi chaque position devient (encore une fois, la lecture de droite à gauche): 1 (c.-à-d. 2 ^ 0), 2 (c.-à-d. 2 ^ 1), 4 (c.-à-d. 2 ^ 2), etc.

Par exemple

2^2 (4), 2^1 (2), 2^0 (1).

En complément à deux signé, le bit le plus significatif (MSB) devient négatif. Il représente donc le signe numérique: "1" pour un nombre négatif et "0" pour un nombre positif.

Pour un nombre à trois bits, les lignes contiendraient ces valeurs:

-4, 2, 1
 0  0  1 => 1
 1  0  0 => -4
 1  0  1 => -4 + 1 = -3

La valeur des bits détenus par un système à virgule fixe (fractionnaire) est inchangée. Les valeurs des colonnes suivent le même schéma que précédemment, base (2) à une puissance, mais avec une puissance négative:

2^2 (4), 2^1 (2), 2^0 (1) . 2^-1 (0.5), 2^-2 (0.25), 2^-3 (0.125)

-1 sera toujours 111.000
- 0,5 ajoutez-y 0,5: 111.100

Dans ton cas 110100.10 est égal à -32 + 16 + 4 + 0,5 = -11,5. Ce que vous avez fait était de créer -12 puis d'ajouter 0,5 plutôt que de soustraire 0,5.

Ce que vous voulez réellement, c'est -32 + 16 + 2 + 1 + 0,5 = -12,5 = 110011.1

25
Morgan

vous pouvez doubler le nombre encore et encore jusqu'à ce qu'il soit un entier négatif ou atteigne une limite définie, puis définissez le point décimal en conséquence.

-25 est 11100111, donc -12,5 est 1110011.1

5
Immueggpain

Donc, U veut représenter -12,5 dans la représentation du complément à 2

12,5: - >> 01100.1

Complément de 2 de (01100.1): - >> 10011.1

vérifier les ans en vérifiant la propriété de code pondérée de la représentation du complément à 2 (le poids MSB est -ve). nous obtiendrons -16 + 3 + .5 = -12,5

2
Rajesh Pradhan