2014-09-08 12 views
5

I vantaggi dell'utilizzo del complemento a due per la memorizzazione di valori negativi in ​​memoria sono ben noti e ben discussi in questa scheda.Esistono architetture che non utilizzano il complemento a due per la rappresentazione di valori negativi?

Quindi, mi chiedo:

Do o esistevano alcune architetture, che hanno scelto un modo diverso per rappresentare i valori negativi in ​​memoria rispetto all'utilizzo di complemento a due? In caso affermativo: quali sono stati i motivi?

+0

Possibile duplicato di [Esistono implementazioni non complementari di C?] (Https://stackoverflow.com/questions/12276957/are-there-any-non-twos-complement-implementations-of-c) –

risposta

3

L'entità firmata era l'implementazione più ovvia e naturale dei numeri firmati.

Il complemento di uno è stato utilizzato anche su macchine reali.

Su entrambe le rappresentazioni, c'è un vantaggio che gli intervalli positivo e negativo si estendono su intervalli uguali. Uno svantaggio è che entrambi contengono una rappresentazione zero negativa che non si verifica naturalmente nel tipo di aritmetica intera comunemente usata nel calcolo. E, naturalmente, l'hardware per il complemento a due risulta essere molto più semplice da costruire

Si noti che quanto sopra si applica agli interi. Le rappresentazioni in virgola mobile in stile IEEE comuni sono in effetti una grandezza di segno, con alcuni dettagli più stratificati nella rappresentazione della magnitudine.

+0

L'esponente * di IEEE FP utilizza una [rappresentazione distorta] (http://en.wikipedia.org/wiki/Exponent_bias), ad esempio, aggiungendo 127 per precisione singola. L'articolo di Wikipedia collegato afferma che la motivazione era semplificare il confronto. Il formato di magnitudine del segno semplifica la manipolazione del bit di segno (ad esempio, il valore assoluto; I * think * IEEE 754 consente la manipolazione del bit di segno per ignorare i segnali NaN) e la moltiplicazione (più comune per FP rispetto all'intero). (A proposito, lo zero negativo può essere usato come un intero NaN.) (Non sono sicuro direi ** molto ** più semplice da costruire, escludendo le ALU sfalsate.) –