2010-04-09 20 views
20

Lo so non firmato, complemento a due, complemento a uno e firmare grandezza, e la differenza tra questi, ma quello che mi incuriosisce è:a due, perché il nome di "due"

  1. perché si chiama il complemento di due (o di quelli), quindi c'è un complemento più generalizzato di N?
  2. in che modo questo genio ha dedotto un modo così naturale di rappresentare numeri negativi? complemento
+3

"Il complemento a due di un numero binario è definito come il valore ottenuto sottraendo il numero da una grande potenza di due" - http://en.wikipedia.org/wiki/Two's_complement – Ben

risposta

27

Two è nata quando qualcuno si rese conto che 'andamento negativo' sottraendo 1 da 0 e lasciando che i bit rollunder effettive aritmetica semplice firmato perché non esistono controlli speciali devono essere fatto per verificare se il numero è negativo o no . Altre soluzioni offrono una discontinuità tra -1 e 0. L'unica stranezza con il complemento a due è che ottieni un numero negativo più nel tuo intervallo rispetto a quello che hai numeri positivi. Ma, poi, altre soluzioni ti danno cose strane come +0 e -0.

Secondo Wikipedia, il nome stesso deriva dalla matematica e si basa sui modi per semplificare la sottrazione quando si dispone di posti numerici limitati. Il sistema è in realtà un "complemento radix" e dato che il binario è la seconda base, questo diventa "complemento a due". E si scopre che "il complemento di uno" è chiamato per il "complemento radix diminuito", che è la radice meno uno. Se si guarda questo per decimale, il significato dietro i nomi ha più senso.

Method of Complements (Wikipedia)

+1

l'unica cosa che rimane da aggiungere è che, come con il registro della CPU con numeri fissi di bit, per generalizzare su N radix, devi lavorare all'interno di un numero fisso di cifre. – JustJeff

7

Si può fare la stessa cosa in altre basi. Con i decimali, avresti il ​​complemento a 9, dove ogni cifra X è sostituita da 9-X, e il complemento a 10 di un numero è il complemento a 9 più uno. È quindi possibile sottrarre aggiungendo il complemento a 10, assumendo un numero fisso di cifre.

Un esempio - in un sistema a 4 cifre, data la sottrazione

0846 
-0573 
=0273 

Prima trovare complemento a 9 dispone di 573, che è 9-0 9-5 9-7 9-3 o 9426
la 10 complemento del 573 è 9426 + 1, o 9427
Ora aggiungere complemento a 10 e buttare via tutto ciò che porta su 4 cifre

0846 
    +9427  .. 10's complement of 573 
= 10273  .. toss the 'overflow' digit 
= 0273  .. same answer 

Ovviamente questo è un semplice esempio. Ma l'analogia porta. È interessante notare il valore più negativo nel complemento a 10 cifre di 10 cifre? 5000!

Per quanto riguarda l'etimologia, vorrei ipotizzare che il complemento del termine 1 sia un complemento nello stesso senso in cui un angolo complementare dalla geometria è di 90 gradi meno l'angolo - cioè, è la parte rimasta quando sottrai il dato da qualche valore standard. Non sono sicuro di come il complemento "2" abbia senso.

+0

"Complemento 2" perché è in base 2. Il termine generale è "complemento radix". – dan04

+0

Questo è davvero strano, perché chiamare il complemento N il risultato della sottrazione della cifra da N-1? Invece di sottrarlo da N. – phkahler

+0

@phkahler: Perché nella base N, sottraendo ogni cifra da N-1, e quindi aggiungendo 1, corrisponde esattamente a sottrarre il numero da una potenza appropriata di N. Ad esempio, il complemento a 10 di 0573 è 9426 + 1 = 9427, che è precisamente 10000-573. Questo è anche il motivo per cui il metodo funziona: 846-573 = 846+ (10000-573) -10000. [Curiosità: corrisponde a una regola nota come "tutto da nove e l'ultimo da 10" nella cosiddetta "matematica vedica": http://en.wikipedia.org/wiki/Vedic_Mathematics] – ShreevatsaR

0

Nel sistema di numerazione decimale, il radix è dieci:

  • Radix complemento si chiama come dieci complemento
  • diminuita Radix complemento è chiamato come nove complemento

Nel sistema di numerazione binario, il radix è due:

  • Radix complemento si chiama come complemento a due
  • diminuita Radix complemento è chiamato come complemento quelli

Fonte: https://en.wikipedia.org/wiki/Method_of_complements

Problemi correlati