Pagina precedente  Indice  Pagina successiva
 

La rappresentazione posizionale rispetto ad una base qualsiasi


Quanto abbiamo detto per le basi $10$$2$ vale anche, con piccole modifiche, se al posto di$10$$2$ utilizziamo una base diversa, ad esempio $16$. La rappresentazione in base $16$ del numero millenovecentonovantanove è $7CF$, il che significa che millenovecentonovantanove si rappresenta come:

\begin{displaymath}7\times16^2+12\times16^1+15\times16^0\end{displaymath}



L'uso delle lettere $C$ ed $F$ dipende dal fatto che la base $16$ (che viene realmente usata, a volte, nella programmazione dei calcolatori) richiede $16$ cifre, da zero a quindici, per le quali vengono usati i simboli da $0$$9$, seguiti dalle sei lettere $A,B,C,D,E,F$ per le cifre da $10$$15$.

Come si vede nell'esempio precedente, usare una base più grande di $10$ comporta da una parte il vantaggio che il numero di cifre richieste per scrivere un dato numero ($1999$ nel nostro esempio) è minore che nella base $10$, ma d'altra parte richiede anche di imparare un numero maggiore di simboli. La base $60$, ad esempio, richiederebbe l'uso di ben $60$ simboli diversi, e questo porrebbe ovvie difficoltà di apprendimento.

È possibile usare qualsiasi numero come base ? La risposta è sì. Un teorema (Vedi [LC], cap. 5) afferma che, fissato un numero naturale $n$ qualsiasi, ogni numero naturale $x$ si può rappresentare in modo unico rispetto alla base $n$. Il modo per trovare questa rappresentazione è lo stesso visto per la base $2$, e consiste nel dividere ripetutamente il numero $x$ per la base $n$, e nel prendere i resti di queste divisioni in ordine inverso. Naturalmente, per rappresentare i numeri in una base $n$, occorrono $n$ simboli diversi, per le cifre da $0$$n-1$.

Come esempio, cerchiamo la rappresentazione in base $8$ del numero duemilauno (usando, per le otto cifre necessarie, i simboli da "0" a "7", e svolgendo i calcoli, per comodità, in base $10$):
 


\begin{displaymath}2001 = 250 \times 8 + 1\end{displaymath}
\begin{displaymath}250 = 31 \times 8 + 2\end{displaymath}
\begin{displaymath}31 = 3 \times 8 + 7\end{displaymath}
\begin{displaymath}3 = 0 \times 8 + 3\end{displaymath}

Dunque la rappresentazione cercata è $3721$ .

Anche gli algoritmi per le operazioni aritmetiche restano gli stessi, con la differenza che ora si ha riporto quando si supera il valore $n$ della base.

L'algoritmo solito per la moltiplicazione, ad esempio, richiede di conoscere tutti i prodotti tra due numeri ad una sola cifra, ossia tutti i prodotti a partire da $1\times 1$ fino a $(n-1)\times (n-1)$ (le 'tabelline'). In base $10$ si tratta di memorizzare $8 \times 8 = 64$ prodotti (le tabelline dello $0$ e dell'$1$ sono banali e non richiedono di essere memorizzate). In base $2$, come abbiamo visto, non occorre memorizzare nessun prodotto, in base $3$ basta ricordare che $2\times 2 = 4$ (che in base $3$ si scrive $11$), e così via. In base $16$ i prodotti da ricordare sono $14\times 14 = 190$, mentre in base $60$ sarebbero $58\times 58 = 7744$ (i sumeri, che usavano la base $60$, non usavano il nostro algoritmo di moltiplicazione).

In generale, per una base $n$, occorrerebbe conoscere le tabelline dell'$n$, che contengono $(n-2)\times (n-2)$ prodotti.

In realtà, non è necessario memorizzare tutti questi prodotti, e neppure avere a disposizione $n$ simboli diversi per le cifre: si può usare un'altra base, minore di $n$, per rappresentare le cifre necessarie per la base $n$, e calcolare gli $(n-2)\times (n-2)$ prodotti a una cifra usando l'algoritmo di moltiplicazione con questa base ausiliaria. Per esempio, se vogliamo usare la base $60$, possiamo rappresentare le $60$ cifre occorrenti nella base ausiliaria $10$, e calcolare i loro prodotti usando l'algoritmo di moltiplicazione in base $10$.


Pagina precedente  Indice  Pagina successiva