Matematica per le superiori/Basi di numerazione

Wikibooks, manuali e libri di testo liberi.
Teoria   —   Esercizi


  1. Primo anno
  2. Secondo anno
  3. Terzo anno
  4. Quarto anno
  5. Quinto anno
  6. Extra

Per scrivere un qualunque numero naturale noi utilizziamo 10 simboli:

0,\; 1,\; 2,\; 3,\; 4,\; 5,\; 6,\; 7,\; 8,\; 9

Sono le 10 cifre. Ma se invece di dieci cifre ne usassimo 12 o 16 potremmo scrivere più numeri? E se invece di 10 cifre ne usassimo solo 8 o 2 potremmo scriverne di meno? C'è qualche numero naturale che non si può scrivere usando 10 cifre mentre lo si potrebbe scrivere usando più cifre? A tutte queste domande la risposta è: "No"!

Ma allora perché usiamo proprio 10 cifre? Cos'ha di particolare, in matematica il 10? 10 è la base della normale numerazione non per meriti matematici, ma per meriti anatomici, molto probabilmente perché il nostro cervello è abituato a vedere spesso il numero 10, ogni volta che ci guardiamo le mani!

Tutta l'aritmetica può essere fatta anche usando un numero diverso di simboli, ovvero usando una differente base di numerazione. E in certi casi è conveniente usare una base diversa.

Scrittura polinomiale[modifica]

Prima di passare a studiare la scrittura dei numeri in basi diverse, conviene analizzare meglio la scrittura dei numeri in base 10.

Il numero: 2357 \text{, in base dieci, significa: }2\text{ migliaia }+3\text{ centinaia }+5\text{ decine }+7\text{ unita} \,

possiamo anche scrivere:

2357_{dieci} = 2 \times \text{mille} + 3 \times \text{cento} + 5 \times \text{dieci} + 7 \times \text{uno}

oppure usando le potenze di 10:

2357_{dieci} = 2 \times \text{dieci}^3 + 3 \times \text{dieci}^2 + 5 \times \text{dieci}^1 + 7 \times \text{dieci}^0

Risulta che se la scrittura 2357 esprimesse un numero scritto in base 8 il suo significato sarebbe:

2357_{otto} = 2 \times \text{otto}^3 + 3 \times \text{otto}^2 + 5 \times \text{otto}^1 + 7 \times \text{otto}^0

I primi numeri in diverse basi[modifica]

Per scrivere numeri in base 8 dovremmo utilizzare solo 8 simboli:

0,\; 1,\; 2,\; 3,\; 4,\; 5,\; 6,\; 7

Ma se con 10 cifre possiamo scrivere qualunque numero, usandone solo 8 ci sono dei numeri che non si possono rappresentare?

Come faccio a rappresentare in base 8 il numero 9? e il numero 10? e...

Una domanda analoga la possiamo porre anche per i numeri scritti in base 10: come facciamo a rappresentare il numero 12? e il 13? e...

Con una sola cifra non possiamo farlo, ma se il numero è maggiore di 9 lo rappresentiamo usando due (o più) cifre:

base 10 base 8 base 5 base 2 base 16 commenti
0 0 0 0 0
1 1 1 1 1
2 2 2 10 2 qui ho finito le cifre a disposizione per la base 2
3 3 3 11 3
4 4 4 100 4 qui ho finito le cifre a disposizione per la base 2
5 5 10 101 5 qui ho finito le cifre a disposizione per la base 5
6 6 11 110 6
7 7 12 111 7
8 10 13 1000 8 qui ho finito le cifre a disposizione per la base 8 e per la base 2
9 11 14 1001 9
10 12 20 1010 a qui ho finito le cifre a disposizione per la base 10
11 13 21 1011 b
12 14 22 1100 c
13 15 23 1101 d
14 16 24 1110 e
15 17 30 1111 f
16 20 31 10000 10 qui ho finito le cifre a disposizione per la base 16 e per la base 2
17 21 32 10001 11
... ... ... ... ... ad libitum

Ogni volta che finisco le cifre a disposizione per una certa base, devo aumentare il numero di cifre usato.

È evidente che in qualunque base, a patto di utilizzare un sufficiente numero di cifre, si può scrivere qualsiasi numero.

Poiché le cifre sono 10, per scrivere un numero in una base maggiore, dovrò procurarmi altre cifre. Nel caso dei numeri esadecimali, servono altri 6 simboli. Generalmente vengono utilizzati: a, b, c, d, e, f o le corrispondenti lettere maiuscole.

Come si vede nella tabella,lo stesso numero può essere scritto in molti modi diversi: 15, 17, 30, 10001, f questi possono essere visti come nomi diversi di uno stesso numero. Per poter interpretare correttamente la scrittura di un numero dobbiamo sapere in che base è scritto. Normalmente lo si ricava dal contesto: se non detto esplicitamente la base è dieci.

Da altra base a base dieci[modifica]

Se ho un numero scritto in una base diversa, come faccio a scriverlo in base dieci? Riprendiamo un esempio precedente:

2357_{otto}

Recuperiamo anche il significato di questa scrittura:

2357_{otto} = 2 \times \text{otto}^3 + 3 \times \text{otto}^2 + 5 \times \text{otto}^1 + 7 \times \text{otto}^0

Se vogliamo tradurlo in base dieci basta che sostituiamo alla base otto la sua scrittura in base dieci: 8:

2357_{otto} = 2 \times 8^3 + 3 \times 8^2 + 5 \times 8^1 + 7 \times 8^0=
                    2 \times 512 + 3 \times 64  + 5 \times 8   + 7 \times 1=1263

Controlliamo il meccanismo con un numero presente nella tabella precedente:

10001_{due} = 1 \times 2^4 + 0 \times 2^3 + 0 \times 2^2 + 0 \times 2^1+ 1 \times 2^0=
                    1 \times 16  + 0 \times 8   + 0 \times 4   + 0 \times 2  + 1 \times 1 =17

Da base dieci a altra base[modifica]

Ora non ci resta che trovare il modo per tradurre un numero dalla base 10 in un'altra base.

Partiamo con qualche esempio: se vogliamo tradurre in base 3 il numero 7, possiamo osservare che è composto da due terzine più una unità: 7_{dieci}=2 \times 3^1 + 1 \times 3^0=21_{tre}

Allo stesso modo, il numero 16 è composto da 5 terzine e una unità:

16_{dieci}=5 \times 3^1 + 1 \times 3^0=51_{tre}

Ma 51_{tre}\, non è un numero valido perché un numero in base tre deve essere scritto usando solo le tre cifre: 0, \; 1, \; 2

In effetti 5 è composto da una terzina più due unità e quindi 5 terzine corrisponderanno a una terzina di terzine più due terzine:

15_{dieci}=1 \times 3^2 + 2 \times 3^1 + 0 \times 3^0=120_{tre}

Si può sintetizzare il processo in una sequenza di divisioni intere, dove il divisore è la nuova base e si utilizzano i resti presi nell'ordine inverso:

Mat sup basi Cambiabase.png

Nell'immagine il numero è 15, il divisore (nonché base) è 3, i resti sono su sfondo giallo e i quozienti interi su sfondo azzurro.

Numeri binari[modifica]

Tra le varie basi numeriche la base due ha una particolare importanza dato che il calcolo automatico si fonda proprio su numeri binari.

Riprendiamo la tabella di conversione dei primi numeri in base dieci e base due.

base 10 base 2
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
16 10000
17 10001
... ...


Possiamo osservare che, come per le potenze di 10, anche per le potenze di due scritte con numeri binari si ha che due alla enne è uguale a un uno seguito da enne zeri:

\begin{matrix} 2^n = & 1 \underbrace{ 0\cdots 0 } \\ & \;\; n \end{matrix}

È interessante osservare il funzionamento degli algoritmi di calcolo delle quattro operazioni applicati ai numeri binari.

Calcolo con numeri di una sola cifra[modifica]

La base degli algoritmi di calcolo in colonna è la conoscenza del risultato delle operazioni su numeri di una sola cifra: nel caso dei numeri binari.

La tabellina dell'addizione:

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 con il riporto di 1

Dato che nell'addizione abbiamo dei riporti, dobbiamo conoscere la tabella dell'addizione tra tre cifre:

0 + 0 + 0 = 0
0 + 0 + 1 = 1
0 + 1 + 0 = 1
0 + 1 + 1 = 0 con il riporto di 1
1 + 0 + 0 = 1
1 + 0 + 1 = 0 con il riporto di 1
1 + 1 + 0 = 0 con il riporto di 1
1 + 1 + 1 = 1 con il riporto di 1

La tabellina della sottrazione:

0 - 0 = 0
0 - 1 = 1 con il prestito di 1
1 - 0 = 1
1 - 1 = 0

Dato che nella sottrazione abbiamo dei prestiti, dobbiamo conoscere la tabella della sottrazione che tenga conto dei prestiti effettuati dalla cifra di ordine superiore alla cifra di ordine inferiore. Chiamando con n nessun prestito e con p un prestito:

n 0 - 0 = 0
n 0 - 1 = 1 con il prestito di 1
n 1 - 0 = 1
n 1 - 1 = 0
p 0 - 0 = 1 con il prestito di 1
p 0 - 1 = 0 con il prestito di 1
p 1 - 0 = 0
p 1 - 1 = 1 con il prestito di 1

La tabellina della moltiplicazione:

0 * 0 = 0
0 * 1 = 0
1 * 0 = 0
1 * 1 = 1

A questo punto possiamo affrontare le operazioni in colonna.

Addizione[modifica]

Usando le tabelle precedenti si può eseguire l'addizione tra due numeri binari di un qualunque numero di cifre. Di seguito riporto un esempio svolto passo passo:


       1100011        1100011        1100011       1100011 
 ----------     ----------     ----------     ----------    ----------
                

--82.58.137.93 16:31, 5 gen 2013 (CET) miniatura

Sottrazione[modifica]

Usando le tabelle precedenti si può eseguire la sottrazione tra due numeri binari di un qualunque numero di cifre. Di seguito riporto un esempio svolto passo passo:

                                      p              p              p      
  100101101-     100101101-     100101101-     100101101-     100101101-
   11001010       11001010       11001010       11001010       11001010 
  ----------     ----------     ----------     ----------     ----------
                         1             11            011           0011

        p              p         p    p        pp    p        pp    p      
  100101101-     100101101-     100101101-     100101101-     100101101-
   11001010       11001010       11001010       11001010       11001010 
  ----------     ----------     ----------     ----------     ----------
      00011         100011        1100011       01100011      001100011     

Moltiplicazione[modifica]

Una prima osservazione: il prodotto di un numero per una potenza di 2 si ottiene aggiungendo a destra tanti zeri quanti sono presenti nella potenza di 2:

5*2=101*10=1010
5*4=101*100=10100
5*64=101*1000000=101000000
...

Nell'algoritmo della moltiplicazione viene utilizzata, nella prima parte, la tabellina della moltiplicazione (ovvio) e nella seconda l'algoritmo della somma. Nella seconda parte, può esserci la necessità di sommare più di due numeri, infatti si devono addizionare tanti numeri quanti sono gli uni presenti nel secondo fattore. Per usare il precedente algoritmo dell'addizione devo sommare i primi due numeri diversi da zero poi aggiungere il terzo e così via:


       1010*
       1101
  ----------         1
       1010+          1010+        1 
      00000+        101000+         110010+
     101000+      ---------        1010000
    1010000         110010        ---------
  ----------                      10000010

Divisione[modifica]

L'algoritmo di Euclide si può applicare anche alla divisione con numeri in base due. L'algoritmo di Euclide non usa la tabellina della divisione, ma un meccanismo di sottrazioni ripetute:

10000110 | 1101     10000110 | 1101     10000110 | 1101     10000110 | 1101     
-1101    |------    -1101    |------    -1101    |------    -1101    |------    
------   | 1        ------   | 10       ------   | 101      ------   | 1010     
 0011    |           00111   |           00111   |           00111   |          
         |           -0000   |           -0000   |           -0000   |          
         |           ------  |           ------  |           ------  |          
         |             1111  |             1111  |             1111  |          
         |                   |            -1101  |            -1101  |           
         |                   |            ------ |            ------ |
         |                   |               10  |               100 |          
         |                   |                   |             -0000 |
         |                   |                   |             ------|
         |                   |                   |               100 |

Esercizi: Scrittura polinomiale[modifica]

  1. Scrivi in forma polinomiale il numero 3456_{otto}.
  2. Inventa e aggiungi un esercizio prima di questo, ricordati di aggiungere anche la soluzione.

Esercizi: I primi numeri in diverse basi[modifica]

  1. Completa la tabella precedente fino al numero 35.
  2. Scrivi i primi 35 numeri in base 3.
  3. Inventa e aggiungi un esercizio prima di questo, ricordati di aggiungere anche la soluzione.

Esercizi: Da altra base a base dieci[modifica]

  1. Scrivi in base dieci il numero 3456_{otto}.
  2. Inventa e aggiungi un esercizio prima di questo, ricordati di aggiungere anche la soluzione.

Esercizi: Da base 10 ad altra base[modifica]

  1. Scrivi in base 8 il numero 432.
  2. Inventa e aggiungi un esercizio prima di questo, ricordati di aggiungere anche la soluzione.

Esercizi: Numeri binari[modifica]

  1. Negli esempi di operazioni riportati nel testo: trasforma gli operandi in base dieci, esegui il calcolo, trasforma il risultato ottenuto in base due e confronta i risultati (esegui in colonna i calcoli in base dieci).
  2. Inventa e aggiungi un esercizio prima di questo, ricordati di aggiungere anche la soluzione.