it.wikipedia.org

Sottrazione per complemento - Wikipedia

Da Wikipedia, l'enciclopedia libera.

Particolare di tastiera predisposta per sottrarre tramite complemento (1910 circa)

La sottrazione per complemento era il metodo utilizzato per eseguire la sottrazione e la divisione con le addizionatrici meccaniche più semplici.

Tali macchine mancavano di un apposito meccanismo di sottrazione. Per eseguire l'operazione {\displaystyle (a-b)}, l'operatore sommava ad {\displaystyle a} la quantità {\displaystyle (10^{n}-b)}, il cosiddetto complemento di {\displaystyle b} a {\displaystyle 10^{n}}, dove {\displaystyle n} è il numero massimo di cifre rappresentabili sull'addizionatrice.

In pratica, la sottrazione per complemento si effettua sommando al minuendo un addendo formato dal complemento a 10 della cifra significativa (non nulla) di ordine più basso del sottraendo e il complemento a 9 di tutte le cifre (del sottraendo) alla sua sinistra.

Per semplificare il lavoro degli operatori, sui tasti delle antiche addizionatrici veniva indicato più in grande il loro valore per la somma e, più in piccolo, il complemento a 9. Alcune addizionatrici avevano anche un dispositivo che evitava di dover sommare i 9 iniziali.

L'utilizzo del complemento per effettuare le sottrazioni non è limitato ai numeri rappresentati in base decimale e veniva applicato anche ad addizionatrici prodotte per operare con valute o unità di misura non decimali. Nella programmazione degli attuali calcolatori elettronici viene ampiamente usato il complemento a due con finalità simili.

Per capire il funzionamento di questo metodo di calcolo, si pensi di operare con un'addizionatrice in grado di eseguire solo somme (ad es. Comptometer) e in grado di lavorare con solo 5 cifre. Inserire un numero che termina con più di 5 zeri (nell'esempio 100.000) equivale a non inserire nulla, in quanto sulla addizionatrice entrerebbero solo gli zeri finali. Nella terminologia introdotta successivamente dall'Informatica si verifica un overflow, senza particolari conseguenze negative, tranne la perdita delle cifre significative.

Tale caratteristica può essere però sfruttata per sottrarre. Infatti su un'addizionatrice con 5 cifre,

{\displaystyle a-b=a+(0-b)=a+(100000-b)}

in quanto nell'aritmetica dell'addizionatrice {\displaystyle 100000=0}. Ciò permette di sommare {\displaystyle 100000-b} (complemento di {\displaystyle b} a {\displaystyle 100000}) invece di sottrarre {\displaystyle b}, operazione che la macchina non è in grado di compiere. Ad esempio,

{\displaystyle 77-17=77+(100000-17)=77+99983=100060=60}
{\displaystyle 789-160=789+(100000-160)=789+99840=100629=629}

in quanto la cifra {\displaystyle 1} iniziale dei risultati non può apparire sul totalizzatore, il dispositivo su cui viene rappresentato il risultato, che ha solo 5 cifre.

La divisione sulle calcolatrici meccaniche avveniva per sottrazioni successive. Nelle macchine più complesse l'operazione era quasi completamente automatizzata. Su quelle in cui perfino la sottrazione non era "diretta", ma per complemento, si doveva ricorrere a degli accorgimenti semplici, ma non banali, per rendere "semi-automatico" il lavoro dell'operatore.

Ad esempio, l'operazione

{\displaystyle 255:12=21} con il resto di {\displaystyle 3}

si sarebbe svolta nel seguente modo:

Risultato sullo schermo Operazione
_{\displaystyle 255} Si imposta 255 lasciando almeno una colonna libera alla sua sinistra
{\displaystyle 0,255} Si pone il cursore che indica la virgola nella posizione davanti alla prima cifra del dividendo
{\displaystyle 0,88} Si sottrae ripetutamente 12. Ossia si somma {\displaystyle 88=100-12} (complemento a 100 di 12).
{\displaystyle 1,135} Sul totalizzatore il numero davanti alla virgola viene incrementato di 1 ad ogni passaggio (è il riporto della somma) mentre le cifre dopo la virgola rappresentano il resto.
{\displaystyle 0,88}
{\displaystyle 2,015}
{\displaystyle 20,15} Quando il resto nelle prime due colonne diventa inferiore a 12, sposto di una posizione verso destra la virgola e le colonne su cui sommo 88
_{\displaystyle 0,88}
{\displaystyle 21,03} Alla fine sul totalizzatore si legge {\displaystyle 21,03}, dove le cifre prima della virgola rappresentano il quoziente (21) e quelle successive il resto (3).

Si sarebbe potuta continuare l'operazione per ottenere un quoziente con una o più cifre decimali. Le variazioni sono facilmente intuibili: basta utilizzare una seconda virgola sul totalizzatore.