☺
Programmazione
Scritto da
il 2020-07-15 14:01:49.0 alle 2020-07-15 14:01:49.0
Trollate totali: 9885
Lezione 1 di C#: sistemi numerici
Il sistema numerico da noi utilizzato ha due caratteristiche:
- Abbiamo a disposizione 10 simboli (quindi è un sistema decimale, o in base 10)
- È posizionale, ovvero il valore dei simboli varia a seconda della posizione in cui si trova
Analizziamo come funziona.
Noi abbiamo a disposizione questi simboli.
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Il valore di ogni simbolo varia a seconda della posizione in cui si trova nel numero, per questo si dice che il nostro sistema è posizonale.
Come varia il valore della posizione? In base alla potenza di 10.
Prima posizione (quella più a destra): 100 = 1
Seconda posizione: 101 = 10
Terza posizione: 102 = 100
Quarta posizione: 103 = 100
Quinta posizione: 104 = 1'000
Sesta posizione: 105 = 10'000
Il valore della posizione viene poi moltiplicato al valore della cifra.
Quindi, nel sistema decimale posizionale, 12'369 = 9*100 + 6*101 + 3*102 + 2*103 + 1*104
Un sinonimo di "decimale" è "sistema in base 10". D'ora in poi useremo questo termine.
Immaginiamo però di lavorare con un sistema numerico posizionale in cui abbiamo a disposizione solo quattro simboli, quindi un sistema numerico in base 4, nel quale abbiamo a disposizione solo questi simboli.
[0, 1, 2, 3]
Se nel sistema decimale il valore della posizione segue la potenza di 10, allora in questo sistema numerico il valore della posizione segue la potenza di 4.
Prima posizione (quella più a destra): 40 = 1
Seconda posizione: 41 = 4
Terza posizione: 42 = 16
Quarta posizione: 43 = 64
Quinta posizione: 44 = 256
Sesta posizione: 45 = 1'024
Quindi, in un sistema in base 4, 1213 = 3*40 + 1*41 + 2*42 + 1*43 = 103 (in base 10)
Ora ci siamo immaginati un sistema numerico posizionale con a disposizione meno simboli rispetto al sistema che usiamo solitamente, ma un sistema numerico potrebbe anche avere più simboli rispetto al nostro: per esempio 16 simboli (sistema numerico in base 16 o esadecimale).
Quindi dovremo inventarci nuovi simboli: per convenzione, una volta esauriti i simboli numerici si passa alle lettere.
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G]
Possiamo facilmente intuire che:
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
Questo significa che in questo sistema numerico non avremo più bisogno di due cifre per esprimere il valore "15": ne basta una, ovvero F: una volta oltrepassato F, bisogna utilizzare più cifre e ovviamente il valore di ogni posizione varia in base alla potenza di 16.
Prima posizione (quella più a destra): 160 = 1
Seconda posizione: 161 = 16
Terza posizione: 162 = 256
Quarta posizione: 163 = 4096
Quinta posizione: 164 = 65536
Sesta posizione: 165 = 1'048'576
Quindi, nel sistema posizionale in base 16, 13A3C = C*160 + 3*161 + A*162 + 3*163 + 1*164 = 12*160 + 3*161 + 10*162 + 3*163 + 1*164 = 80'444 (in base 10).
Il sistema numerico che ci interessa nell'informatica è quello binario, ovvero in base 2, dal momento che in un computer possiamo rappresentare solo due simboli: accesso (1) / spento (0)
Quindi l'insieme dei simboli è il seguente.
[0, 1]
E i valori di posizioni sono i seguenti (potenza di 2):
Prima posizione (quella più a destra): 20 = 1
Seconda posizione: 21 = 2
Terza posizione: 22 = 4
Quarta posizione: 23 = 8
Quinta posizione: 24 = 16
Sesta posizione: 25 = 32
Quindi, nel sistema posizionale in base 2, 10110 = 0*20 + 1*21 + 1*22 + 0*23 + 1*24 = 14 (in base 10)
Esercizi
Esercizio 1)
Converti i seguenti numeri in numeri decimali.
101101 in base 2
17654 in base 8
A6BC74 in base 16
Esercizio 2)
Mattia gioca a nascondino coi bambini: i bambini si nascondono, Mattia li cerca.
Il gioco è poco divertente, perché i bambini sono più furbi di lui e lo fregano. Quindi per divertirsi di più decide di contare utilizzando basi numeriche non decimali.
Come conterà Mattia in binario (in base 2)? Come conterà in un sistema in base 8? Come conterà in un sistema esadecimale (in base 16)?
Bisogna contare fino all'equivalente di 60 in base 10.
Esercizio 3)
Scrivi tutti i simboli di un sistema numerico in base 20, poi inventa un numero di almeno 5 cifre nella base stessa che contenga (in una posizione qualsiasi) il simbolo di valore più alto e quello di valore più basso.
**Modificato dall'autore il 15.07.2020 14:18**