Rappresentazione dei numeri relativi

Le rappresentazioni Signed Number sono usate per risolvere il problema di rappresentare gli interi negativi in binario. Il problema di cercare di memorizzare il segno negativo (-) di un numero binario è che non ci sono più stati da usare per rappresentare l'assegnazione negativa. Non è possibile usare semplicemente 'off' per il meno e 'on' per il più perché il computer non avrebbe modo di sapere se si tratta di una cifra o di un segno.

Per superare questo problema i progettisti di computer hanno inventato due metodi per memorizzare i numeri binari negativi: segno-e-magnitudine e complemento a 2. Questi producono rappresentazioni alternative per i numeri firmati.

Segno e magnitudine

Sign and Magnitude funziona cambiando il bit più significativo (MSB - la prima cifra) in un 1 se il numero è negativo, e ridurre il numero di uno, per esempio:

0000 0010 (2)

diventerà...

1000 0010 (-2)

Questo metodo di memorizzazione dei numeri binari negativi non funziona perché:

  • L'aritmetica binaria non funziona.
  • Dobbiamo prima sapere quale meccanismo di memorizzazione usa il compilatore di un particolare linguaggio.

Complemento 1

Il complemento di 1 funziona scambiando gli 1 con gli 0 e gli 0 con gli 1, per esempio:

0000 0010 (2)

diventerà...

1111 1101 (-2)

Molto simile al metodo sign-and-magnitude questo è facilmente definito come un numero negativo perché il suo bit più significativo è 1

complemento a 2

Il complemento a 2 è un modo più difficile di memorizzare i negativi. Ci sono tre passaggi per esso:

  1. Trova il numero binario positivo (per esempio 8base 10 = 0000 1000base 2).
  2. Scambiate gli 1 con gli 0 e gli 0 con gli 1 (per esempio 0000 1000base 2 diventa 1111 0111base 2).

Questo è noto come "capovolgere i bit", o applicare il NOT logico alla rappresentazione originale in base 2.

  1. Aggiungere 1 (per esempio 1111 0111base 2 + 1base 2 = 1111 1000base 2).

Questo metodo piace perché:

  • È come il segno e la grandezza; un numero negativo inizia con un 1 e un numero positivo inizia con uno 0.
  • L'aritmetica binaria funzionerà.
  • C'è solo un valore per 0 (0000 0000base 2).

AlegsaOnline.com - 2020 / 2023 - License CC3