Rappresentazione in Complemento dei Numeri

Concetti Chiave
  • La rappresentazione in complemento è utilizzata nei computer digitali per semplificare le operazioni di sottrazione.
  • Esistono due tipi di complementi: il complemento alla radice e il complemento alla radice diminuita.
  • Il complemento a 9 di un numero decimale si ottiene sottraendo ogni cifra da 9, mentre il complemento a 1 di un numero binario si ottiene cambiando gli 1 in 0 e gli 0 in 1.
  • Il complemento a 2 di un numero binario si ottiene cambiando gli 1 in 0 e gli 0 in 1, e poi aggiungendo 1 al risultato.
  • La simmetria del complemento implica che il complemento del complemento di un numero restituisce il numero originale.

Rappresentazione in Complemento

Le rappresentazioni in complemento sono usate nei computer digitali per semplificare l'operazione di sottrazione e per manipolazioni logiche.

Semplificare le operazioni porta a circuiti più semplici e meno costosi per implementare le operazioni. Ci sono due tipi di complementi per ogni sistema in base r:

  • il complemento alla radice, chiamato anche complemento alla base
  • il complemento alla radice diminuita, chiamato anche complemento alla base diminuita.

Il primo è chiamato complemento a r e il secondo complemento a (r - 1).

Nel caso del sistema binario si parla, quindi, di complemento a 2 e complemento a 1. Per il sistema decimale, si parla di complemento a 10 e complemento a 9.

Complemento alla Radice Diminuita

Dato un numero N in base r che ha n cifre, il complemento a (r - 1) di N, cioè il suo complemento alla radice diminuita, è definito come:

(r^n - 1) - N

Per i numeri decimali, r = 10 e r - 1 = 9, quindi il complemento a 9 di N è:

(10^n - 1) - N

In questo caso, 10^n rappresenta un numero che consiste di un singolo 1 seguito da n zeri. Il numero 10^n - 1, invece, è un numero rappresentato da n 9.

Per esempio, se n = 4, abbiamo:

10^4 = 10000 \quad \text{e} \quad 10^4 - 1 = 9999.

Ne segue che il complemento a 9 di un numero decimale si ottiene sottraendo ogni cifra da 9. Ecco alcuni esempi numerici:

Il complemento a 9 di 546700 è:

999999 - 546700 = 453299

Il complemento a 9 di 012398 è:

$$ 999999 - 012398 = 987601 $$\

Caso dei Numeri Binari: Complemento a 1

Per i numeri binari, r = 2 e r - 1 = 1, quindi il complemento a 1 di N è:

(2^n - 1) - N

Di nuovo, 2^n è rappresentato da un numero binario che consiste di un 1 seguito da n zeri, mentre 2^n - 1 è un numero binario rappresentato da n uni.

Per esempio, se n=4, abbiamo 2^4 = (10000)_2 e 2^4 - 1 = (1111)_2. Quindi, il complemento a 1 di un numero binario si ottiene sottraendo ogni cifra da 1. Tuttavia, quando si sottraggono cifre binarie da 1, si può avere o 1 - 0 = 1 o 1 - 1 = 0, che causa il cambio del bit da 0 a 1 o da 1 a 0, rispettivamente. Pertanto, il complemento a 1 di un numero binario si forma cambiando gli 1 in 0 e gli 0 in 1.

I seguenti sono alcuni esempi numerici:

Il complemento a 1 di 1011000 è 0100111.

Il complemento a 1 di 0101101 è 1010010.

Definizione

Complemento a 1

Il complemento a 1 di un numero binario si forma cambiando gli 1 in 0 e gli 0 in 1.

Il complemento a (r - 1) di numeri ottali o esadecimali si ottiene sottraendo ogni cifra da 7 o F (decimale 15), rispettivamente.

Complemento alla Radice

Il complemento a r di un numero N a n cifre in base r è definito come:

\begin{align*} c(N) = \begin{cases} r^n - N & \text{se} \quad N \neq 0 \\ 0 & \text{se} \quad N = 0 \end{cases} \end{align*}

Confrontando con il complemento a (r - 1), notiamo che il complemento a r si ottiene aggiungendo 1 al complemento a (r - 1), poiché:

r^n - N = \left( \left( r^n - 1 \right) - N \right) + 1

Ad esempio, volendo calcolare il complemento a 10 di 2389, prima calcoliamo il complemento a 9:

(10^4 - 1) - 2389 = 9999 - 2389 = 7610

E quindi aggiungiamo 1:

7610 + 1 = 7611

Esiste un modo più veloce per calcolare il complemento a 10 di un numero decimale.

Poiché 10^n è un numero rappresentato da un 1 seguito da n zeri, 10^n - N, che è il complemento a 10 di N, può essere formato anche lasciando invariati tutti gli 0 meno significativi, sottraendo la prima cifra diversa da zero meno significativa da 10, e sottraendo tutte le cifre più significative da 9.

Ad esempio, supponiamo di voler calcolare il complemento a 10 di 246700. In questo caso il procedimento è il seguente:

  1. Lasciamo invariati i due 0 meno significativi:

    c(246700) = x_1 \, x_2 \, x_3 \, x_4 \, 0 \, 0
  2. Sottraiamo 7 da 10 ottenendo 3. Questa sarà la cifra meno significativa del complemento:

    c(246700) = x_1 \, x_2 \, x_3 \, 3 \, 0 \, 0
  3. Sottraiamo le altre cifre da 9:

    x_3 = 9 - 6 = 3, \quad x_2 = 9 - 4 = 5, \quad x_1 = 9 - 2 = 7

    Quindi, il complemento a 10 di 246700 è:

    c(246700) = 753300

Proviamo con un altro esempio. Vogliamo calcolare il complemento a 10 di 012398:

  1. Questo numero non ha zeri meno significativi, quindi lasciamo invariato il numero:

    c(012398) = x_1 \, x_2 \, x_3 \, x_4 \, x_5 \, x_6
  2. Sottraiamo 8 da 10 ottenendo 2. Questa sarà la cifra meno significativa del complemento:

    c(012398) = x_1 \, x_2 \, x_3 \, x_4 \, x_5 \, 2
  3. Sottraiamo le altre cifre da 9:

    \begin{align*} x_5 = & 9 - 9 = 0, \\ x_4 = & 9 - 3 = 6, \\ x_3 = & 9 - 2 = 7, \\ x_2 = & 9 - 1 = 8, \\ x_1 = & 9 - 0 = 9 \end{align*}

    Quindi, il complemento a 10 di 012398 è:

    c(012398) = 987602

Caso dei Numeri Binari: Complemento a 2

Nel caso dei numeri binari, si parla di complemento a 2. Il complemento a 2 di un numero binario si ottiene cambiando gli 1 in 0 e gli 0 in 1 (cioè, calcolando il complemento a 1) e poi aggiungendo 1 al risultato.

Ad esempio, il complemento a 2 del numero binario 101100 è calcolato come segue:

  • Prima, calcoliamo il complemento a 1 di 101100 invertendo gli 1 in 0 e gli 0 in 1:

    101100 \rightarrow 010011
  • Poi, aggiungiamo 1 al risultato:

    010011 + 1 = 010100

Quindi, il complemento a 2 del numero binario 101100 è 010100.

Definizione

Complemento a 2

Il complemento a 2 di un numero binario si ottiene cambiando gli 1 in 0 e gli 0 in 1 (cioè, calcolando il complemento a 1) e poi aggiungendo 1 al risultato.

Come per il caso della base 10, allo stesso modo, il complemento a 2 può essere calcolato più velocemente. Il procedimento consiste nel:

  1. lasciare invariati tutti gli 0 meno significativi e il primo 1;
  2. sostituire gli 1 con 0 e gli 0 con 1 in tutte le altre cifre più significative.

Proviamo con un esempio. Vogliamo calcolare il complemento a 2 di 1101100:

  1. Lasciamo invariati i due 0 meno significativi e il primo 1:

    c(1101100) = x_1 \, x_2 \, x_3 \, x_4 \, 1 \, 0 \, 0
  2. Sostituiamo gli 1 con 0 e gli 0 con 1 nelle altre quattro cifre più significative:

    c(1101100) = 0010100

Analogamente, proviamo con il numero 0110111:

  1. Non vi sono zeri meno significativi, quindi lasciamo invariato solo il primo 1:

    c(0110111) = x_1 \, x_2 \, x_3 \, x_4 \, x_5 \, x_6 \, 1
  2. Sostituiamo gli 1 con 0 e gli 0 con 1 nelle altre quattro cifre più significative:

    c(0110111) = 1001001

Complemento a 2 di Numeri Frazionari

Nelle definizioni precedenti, si è assunto che i numeri non avessero la virgola, ossia non fossero frazionari.

Il procedimento per calcolare il complemento di un numero frazionario è identico, vanno applicati soltanto dei passaggi aggiuntivi:

  1. Si rimuove la virgola;
  2. Si calcola il complemento come se il numero fosse intero;
  3. Si reinserisce la virgola nella posizione corrispondente al numero di cifre decimali del numero originale.

Vediamo un esempio. Vogliamo calcolare il complemento a 2 di 101.011:

  1. Rimuoviamo la virgola:

    101011
  2. Calcoliamo il complemento a 2:

    • Calcoliamo il complemento a 1:

      101011 \rightarrow 010100
    • Aggiungiamo 1:

      010100 + 1 = 010101
  3. Reinseriamo la virgola nella posizione corretta, che in questo caso è tra la terza e la quarta cifra:

    010.101

Simmetria del Complemento

Un'importantissima proprietà del complemento è la sua simmetria. Sia nel caso del complemento alla Radice diminuita che del complemento alla Radice.

In altre parole, dato il complemento c(N) di un numero N, se calcoliamo il complemento di c(N), otteniamo nuovamente N:

c(c(N)) = N

Questa proprietà è semplice da dimostrare.

Per il complemento a (r - 1), se andiamo a calcolare il complemento di c(N) = (r^n - 1) - N, otteniamo:

c(c(N)) = (r^n - 1) - ((r^n - 1) - N) = N.

Per il complemento a r, se calcoliamo il complemento di c(N) = r^n - N, otteniamo:

c(c(N)) = r^n - (r^n - N) = N.