Ultimo aggiornamento: 28 novembre 2003
Che cos'è il codice ASCII?
Il codice ASCII è un metodo standard per codificare informazioni negli elaboratori elettronici. L'ASCII codifica i simboli comunemente usati nell'alfabeto anglosassone (incluse le cifre numeriche, i simboli di punteggiatura, le parentesi e gli operatori logici) utilizzando sette bit, che permettono la rappresentazione di 128 configurazioni differenti (ovvero 27). Quindi in ASCII una sequenza (stringa) di sette cifre binarie codifica uno dei 128 caratteri di cui dicevamo.
Tra i produttori di hardware e software il codice ASCII (American Standard Code for Information Interchange) è il metodo di codifica più diffuso, anche se non l'unico. Oltre al codice ASCII standard (quello che usa sette bit per codificare i simboli dell'alfabeto) esiste anche un codice ASCII esteso con il quale si ottengono 128 configurazioni in più per la codifica dei simboli speciali dei vari alfabeti. Ricordiamo, però, che i simboli speciali possono avere una codifica differente in funzione degli elaboratori e pacchetti software utilizzati, o anche in paesi che utilizzano lingue diverse: questo può creare problemi nello scambio delle informazioni.
(cfr. Console-Ribaudo, pagg. 8-10)
Come funziona la rappresentazione posizionale?
Nella rappresentazione posizionale
a ogni cifra di un numero è attribuito un certo
peso in funzione
della
posizione che la cifra occupa nel numero.
Per esempio,
con il comune sistema di numerazione decimale (o in base 10), che si basa sull'uso
di cifre decimali (dieci cifre da 0 a 9) e delle potenze del numero dieci,
siamo abituati sin dalle scuole elementari a riconoscere nel
numerale "234" il numero duecentotrentaquattro,
costituito da 2 centinaia, 3 decine e 4 unità.
Detto in termini più formali il numerale "234"
rappresenta il numero:
4 · 100 + 3 · 101 + 2 · 102 = 4 + 30 + 200 = 234
La rappresentazione posizionale può essere adottata in qualunque altro sistema di numerazione diverso da quello decimale. Nel sistema di numerazione binario, per esempio, i numeri vengono codificati con le sole due cifre "0" e "1" e uno schema posizionale in cui si usa la base due al posto della base 10
(cfr.Console-Ribaudo, pagg. 12-13)
Come si converte il numero binario 110101 in decimale?
L'algoritmo è semplice: prendo una dopo l'altra le cifre del numero binario
da destra verso sinistra
e le moltiplico per una opportuna potenza di due, poi sommo tutti questi prodotti
parziali e ottengo il numero decimale cercato.
E quale sarebbe la "opportuna" potenza di due?
Allora: prendo la cifra binaria più a destra
e la moltiplico per due alla zero (20 = 1),
poi mi sposto a sinistra, prendo la seconda cifra
e la moltiplico per due alla uno (21 = 2),
prendo la successiva
e la moltiplico per due alla due (22 = 4),
e via di questo passo
Detto in maniera più formale, se ho un numero binario costituito dalla sequenza di cifre:
cm cm-1...c1 c0
converto la sua rappresentazione in base due tramite l'espressione:
c0 · 20 + c1 · 21 + cm-1 · 2m-1 + cm · 2m
Se interpreto in base dieci sia le cifre ci che gli esponenti ed eseguo le operazioni di addizione e prodotto, ottengo la rappresentazione decimale del numero. Nel caso del numero richiesto, dunque:
1101012 = 1 · 20 + 0 · 21 + 1 · 22 + 0 · 23 + 1 · 24 + 1 · 25 = 1 + 4 + 16 + 32 = 5310
(cfr. Console-Ribaudo, pag. 15)
Quante informazioni diverse posso rappresentare con 8 bit?
Con 8 bit si possono codificare 28 informazioni differenti, ossia 256.
Infatti:
con un bit posso codificare 21 = 2 informazioni;
per esempio: 0 bianco, 1 nero
con due bit posso codificare 22 = 4
informazioni;
per esempio:
00 Italia,
01 Francia,
10 Germania,
11 Spagna
con tre bit posso codificare 23 = 8
informazioni;
per esempio:
000 Dotto,
001 Eolo,
...,
110 Cucciolo,
111 Biancaneve
...
con un'aggregazione di N bit posso codificare 2N diverse informazioni.
(cfr. Console-Ribaudo, pag. 7)
Che cos'è un Megabyte?
Un Megabyte (MB) corrisponde a 1024 Kilobyte, e quindi, circa a un milione di byte.
Ricordiamo che:
1 Kilobyte (KB) corrisponde a 1024 byte (1024 = 210);
1 Mbyte (MB) corrisponde a 1024 KB, ovvero circa a un milione di byte;
1 Gigabyte (GB) corrisponde a 1024 MB, ovvero circa a un miliardo di byte;
1 Terabyte (TB) corrisponde a 1024 GB, ovvero circa mille miliardi di byte.
(cfr. Console-Ribaudo, pag. 54)
Che cos'è un pixel?
Un pixel (picture element) corrisponde a
ogni quadratino in cui viene suddivisa un'immagine per poterla rappresentare
in modo digitale. L'immagine viene infatti suddivisa mediante una griglia
formata da righe orizzontali e verticali a distanza costante. Ogni
quadratino derivante da questa suddivisione prende per l'appunto il nome
di pixel e può essere codificato in binario.
Per esempio, immaginando di voler rappresentare in bianco e nero un'immagine,
posso usare il simbolo "0" per la codifica di un
pixel corrispondente ad un quadratino bianco (prevalentemente bianco)
e il simbolo "1" per la codifica di
un pixel corrispondente ad un quadratino nero.
Se a ciascuno dei miei pixel faccio corrispondere un byte, invece di un bit,
potrò allora colorarlo in 28 modi diversi,
ossia avrò un'immagine a 256 colori;
si dice anche che l'immagine ha una profondità di colore
di 8 bit per pixel.
Si parla di pixel anche in campo hardware: un video può essere visto come una matrice di piccoli punti illuminati. Ciascuno di questi punti viene chiamato pixel e l'immagine viene composta accendendo o spegnendo i pixel dello schermo.
(cfr. Console-Ribaudo, pag. 25 e 81)
Quanti colori diversi posso avere in un file GIF?
GIF (Graphics Interchange Format) è un formato diffuso di compressione delle immagini che distingue tra 256 colori.
Come si converte il numero decimale 47 in binario?
L'algoritmo di conversione da decimale a binario è semplice: divido per 2 il numero e trascrivo il resto della divisione; prendo il risultato della divisione e lo divido a sua volta per 2, trascrivendo il resto; continuo così fino a quando il risultato della divisione per 2 è 0. A quel punto rileggo i resti che avevo trascritto, dall'ultimo fino al primo, e ho ottenuto il numero binario che corrispode al numero decimale di partenza.
Applicando quanto detto al numero 47:
Dividendo | Resto |
---|---|
47 | 1 |
23 | 1 |
11 | 1 |
5 | 1 |
2 | 0 |
1 | 1 |
0 |
Rileggendo i resti dall'alto verso il basso e trascrivendoli da sinistra verso destra si ottiene il numero binario 101111.
(cfr. Console-Ribaudo, pag. 14)