|
Tutti sanno che la nostra matematica si basa su numeri in notazione
decimale e molti sanno che i computer, invece, utilizzano il sistema
binario, ma perchè?
Analizzata superficialmente la scelta dei numeri binari, fatti di
sole due cifre (zero e uno) sembra un insulto al buonsenso, uno
spreco.
Pensate che per scrivere in codice binario 2100 si devono usare 12 cifre,
ovvero:
1000 00110100
In compenso le quattro operazioni aritmetiche sono assai semplici.
Addizione:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
(cioè zero con riporto di 1 nella decina)
Sottrazione:
0 - 0 = 0
1 - 0 = 1
1 - 1 = 0
0 - 1 = 1
Moltiplicazione:
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1
Divisione:
0 : 0 = 0
0 : 1 = 0
1 : 0 = 0
1 : 1 = 1
Senza annoiare con prove ed esempi, visto che tanto nessuno di noi
ha intenzione di mettersi a fare i conti in codice binario, cerchiamo
invece di capire subito perchè tutti i computer moderni abbiano
scelto questo tipo di notazione, semplicissima, ma molto più lunga.
Abbiamo detto che la notazione binaria si avvale di due cifre, ma
ciò non è del tutto vero. Teniamo prima di tutto presente che anche
il sistema binario è un tipo di numerazione posizionale, dove la
cifra più a destra rappresenta l'unità, seguita poi dalla decina,
centinaia, migliaia e via di seguito. Solo che ogni posizione è una
potenza di due. In realtà se immaginassimo una fila di caselle come
questa:
|_|_|_|_|_|_|_|_|
la prima casella a destra se contenesse una "x" varrebbe 1, la
seconda posizione varrebbe 2, la terza 4, la quarta 8, la quinta 16,
la sesta 32, l'ottava 64 e via di seguito, sempre raddoppiando il
valore della casella precedente.
Adesso avete anche capito perchè le memorie di un computer hanno
valori che sono sempre potenze di due, vero? 64kb, 128kb, 256kb,
ecc., sono tutte appunto potenze di due.
Visto allora i valori che può assumere qualsiasi casella sarebbe
sufficiente indicare in quali posizioni siano presenti le cifre "1",
lasciando vuote le posizioni corrispondenti allo "0", come in questo
esempio:
|_|X|_|_|X|X|
allora se conosciamo la posizione delle "x" non ci serve usare altri
numeri, giusto?
Se sommassimo le potenze di due delle singole posizioni in cui c'è
una "x" otterremo:
1 + 2 + 16, cioè 19.
Quindi in pratica il sistema binario si può esprimere con un unico
simbolo (meno di così non si può di sicuro!). Gli zeri li mettiamo
noi nello scritto per tenere occupata ogni posizione vuota.
A questo punto diventa facile in un circuito elettrico usare un
unico tipo di segnale che se presente ci darà "1" come valore
posizionale e se manca ci darà "0". Basta un semplice impulso, basta
il concetto "acceso" o "spento", "presente" o "assente".
Mentre se volessimo utilizzare le nostre bene amate dieci cifre
dallo 0 al 9 dovremmo creare circuiti aritmetici in grado di
distinguere almeno 9 segnali diversi tra loro. Diventerebbe tutto
estremamente complicato e delicato! Pensate poi di estendere il
concetto alla memorizzazione di una lettera dell'alfabeto e di tutti
i caratteri speciali che usiamo sulla tastiera. Ci sarebbe da
impazzire. Non è facile in un circuito creare segnali diversi l'uno
dall'altro.
Con il sistema del codice binario, invece, qualsiasi sia il supporto in cui
vogliamo memorizzare un dato, ci basterà applicare la convenzione
del segnale presente o assente in una data posizione. Le cifre (e i
dati che esprimono altri caratteri) s'allungano di sicuro, ma il
concetto si sviluppa in modo assolutamente premiante in termini di
semplicità e quindi di affidabilità. Anche a noi capita a volte di
non capire bene se una cifra scritta un pò male a mano sia un 3 o un
8, oppure un 9 o uno 0, ecc., no? Mentre la X dell'analfabeta è
sempre chiara!
Questa la ragione per cui tutti i computer usano nel loro interno un
sistema elementare di registrazione binaria. Ma non solo i computer,
ormai siamo nell'era digitale e il successo si è esteso ad una serie
molto grande di apparati elettronici, dalle trasmissioni TV, ai
cellulari, alla robotica, ecc.
Quando un computer deve farci conoscere i risultati o ricevere da
noi dei dati, magari da tastiera, si avvale di circuiti che
provvedono ad una adeguata conversione verso il nostro linguaggio.
Allora divertiamoci a contare i primi numeri dallo zero al quindici,
in versione decimale e corrispondente binario:
00=0000
01=0001
02=0010
03=0011
04=0100
05=0101
06=0110
07=0111
08=1000
09=1001
10=1010
11=1011
12=1100
13=1101
14=1110
15=1111
Se teniamo presente che ogni segnale nel gergo dei computer si
chiama "bit" abbiamo visto che per esprimere la cifra decimale 15 ci
occorre "accendere" quattro bit. Quindi con 4 bit rappresentiamo 16
combinazioni di cifre diverse.
Se a questo punto aggiungessimo altri 4 bit e li accendessimo tutti
e otto riusciremo ad esprimere tutti i numeri da zero a 127, cioè
128 combinazioni diverse.
Un insieme di otto bit è stato chiamato "byte", che è diventata
l'unità di misura dei computer, cioè la più piccola parte di dati
che un computer può spostare in una sola volta da una memoria ad
un'altra, purchè gli si diano otto corsie parallele.
Siccome muovere un solo byte alla volta non ci bastava più, si sono
creati computer con 16 corsie (cioè a 16 bit) e poi computer più
veloci a 32 corsie, e poi a 64. E' un processo di crescita che forse
non finirà mai, ma che è servito a rendere sempre più veloci i
nostri pc così come i grandi elaboratori. Il sistema operativo
Windows 2000 si dice che è un sistema che opera a 32 bit. Ma a
questo punto il discorso si complicherebbe e richiederebbe di
introdurre altri concetti che ci porterebbero ben oltre lo scopo di
questa semplice pagina fatta per principianti.
Ricky Spelta
|