Bit che disegnano e disegni liofilizzati.

Angelo Biolcati Rinaldi
CDJr
Published in
3 min readApr 9, 2019
Una specie di pesce, usando un po’ di fantasia

Ecco qui un po’ di quadrotti (pixel, nel seguito), 16x16, 256 in tutto. Son numeri che a noi programmatori suonano dolci come un accordo maggiore, ma sto divagando.

Bianchi e neri. Zeri e uni. Bit! Ma se ne prendiamo 4 per volta potremmo ricavarne un bel numero: tutti bianchi (o zeri) valgono 0; tutti neri (o uni) valgono 15. La tabellina potete ricavarla facilmente; la mia è qui sotto:

con 4 bit si conta da zero a quindici

Il bello dei bit è che ci puoi fare di tutto: ad esempio tradurli da numerazione binaria (zeri e uni, bianchi e neri) ad una decimale o… esadecimale! Cioè fatta con sedici simboli, invece che solo dieci. I sei simboli extra sono le lettere da A a F (con A che rappresenta il dieci, B l’unici, C il dodici, D il tredici, E il quattordici e F il quindici). Il sedici si scrive… 10. Certo, quando finiamo i simboli ci spostiamo a sinistra e ricominciamo. FF quindi vale 100 meno 1 cioè (16x16–1) 255. Bello, no? Insomma, invece di tracciare 4 pallini, bianchi e neri assortiti, possiamo scrivere una sola cifra esadecimale. Con 2 cifre tracciamo 8 quadrotti, con 4 cifre ne tracciamo ben 16! Ed ecco il nostro pesce liofilizzato in 16 numeri esadecimali:

salvo miei errori, questo qui sopra è un pesce

Questo qui sopra non è l’unico sistema per scrivere dei numeri (pochi) per rappresentare dei pixel (tanti): ne esiste almeno un altro che in certi casi è ancora più risparmioso, cioè in grado di comprimere di più l’informazione: si tratta della “codifica di lunghezza” (Run Length Encoding).

Prendiamo la prima riga del mio pesce, nella foto all’inizio; comincia con un pixel “non disegnato”; ecco, noi iniziamo la nostra traduzione del pesce in RLE scrivendo uno 0.

Poi notiamo che ci sono 6 pixel tutti uguali, tutti spenti cioè. Aggiungiamolo alla nostra traduzione che ora si legge: 0,6

Poi ci sono 4 pixel disegnati; la regola dice di contare i pixel adiacenti dello stesso colore e scrivere il numero ogni volta che il colore cambia: 0,6,4

Tradotto: si parte con pixel bianchi (0) e ce ne sono 6, poi ci sono 4 pixel neri e ci potremmo fermare qui a indicare il resto dei pixel sono di nuovo bianchi, sapendo che l’immagine è larga 16 pixel.

Seconda riga: 0,7,1,2,1
Terza: 0,8,1,2,1
Quarta: 0,8,5
Quinta (questa comincia con un pixel nero, quindi lo zero iniziale non si scrive): 1,5,2,5,2
E così via! La penultima riga è 0,2,1
L’ultima riga è semplicemente 0 a dire che è tutta fatta di pixel bianchi. Una riga intera di pixel neri si scrive F.

Adesso vi sfido a indovinare cosa si cela dietro le istruzioni di questo PDF (se leggete la scritta Hot air balloon vi rovinate la sorpresa):

Ne approfitto per ringraziare il sito www.csunplugged.org che lo mette a disposizione insieme a tante altre cose. Grazie ragazzi della Nuova Zelanda!

--

--

Angelo Biolcati Rinaldi
CDJr
Editor for

I’m a software developer using Embarcadero Delphi (since nov.1994 field test) for Win/Mac/iOS/Android/Linux native apps. Proud mentor of CodeDojoRavenna :-D