binari
Capire i numeri binari.
Francesco Melis su smanettando, 19\01\2013, h.22.47.

Il sistema di numerazione binario.
In questo post descriver un esempio che porto nei corsi di formazione
che spiega in termini molto elementari il sistema di numerazione
binario. La metodica usata  quella di spostare il problema in
discussione su un altro piano: quello dell'esperienza diretta quotidiana
delle persone. Si sposta quindi il vero problema su un'altra questione,
familiare per chiunque, dimodoch sia facile ed intuitivo coglierne la
logica. Una volta capito il meccanismo funzionale sottostante la
situazione familiare descritta, con un processo di astrazione, si coglie
quella che  la "struttura" del problema e la si traspone, si spera in
maniera indolore, nel campo dell'argomento tecnico del quale si sta
trattando.
L'obbiettivo  quello di far capire con un esempio molto semplice che
cos', come  costituito e come si legge un numero binario. Tutte le
tematiche teoriche e gli approfondimenti quindi sono demandati ad un
manuale di studio.
Per capire la logica del sistema di numerazione binario, cio quel
misterioso sistema usato nei calcolatori e costituito di soli 0 ed 1
useremo una... bilancia.
S, avete capito bene! Una bilancia.
La bilancia che dovete pensare  quella di precisione dei farmacisti o
degli orafi, quella con i due piattini con le catenelle. Per pesare con
queste bilance, cosa nota a tutti, si pone su un piatto la massa da
pesare, oro o altri metalli preziosi per gli orafi o sostanze chimiche
per il farmacista e si pongono sull'altro piattino uno o pi pesi
campione. Tutte le bilance di questo tipo dispongono di una collezione
di pesi campione, immagino da 100 grammi, 50 grammi, 10 grammi, 5
grammi, 2 grammi, un grammo. Immagino anche che ci siano pi esemplari
del peso da 1 grammo eccetera.
All'inizio della pesata il piatto con la masserella incognita, per il
peso, chiaramente scende gi, mentre l'altro piattino, ove ancora non
abbiamo posato nessun peso campione, ovviamente rimane su.
Ora cominciamo ad aggiungere dei pesi campione sul piattino vuoto. Il
piattino comincia leggermente a scendere. Continuiamo ad aggiungere pesi
campione fino a quando i due piatti sono perfettamente orizzontali: ci
significa che essendo i due piatti in equilibrio contengono le stesse
masse. Il gioco  fatto: basta contare i pesi campione per vedere quanto
pesa la masserella incognita. Se per creare l'equilibrio abbiamo dovuto
usare la massa da 10 grammi, quella da 2 grammi e quella da 1 grammo
allora la massa incognita sar ovviamente 10+2+1 = 13 grammi.
Fin qui credo che non ci piova e, anzi... forse sarebbero bastate anche
molte meno parole di quante ne ho usato per spiegare una cosa che 
veramente banale e facente parte dell'esperienza di tutti.
Bene. Ora immaginiamo una bilancia di questo tipo appena detto, solo che
il pizzicagnolo che ce l'ha prestata  un tipo un po' originale e si 
organizzato a modo suo in questa maniera. La rastrelliera con i pesi
campione da usare per creare l'equilibrio dei piatti contiene un unico
esemplare di ogni pesetto e questi, bont sua, sono: il peso da 16
grammi, il peso da 8 grammi, il peso da 4 grammi, il peso da 2 grammi ed
il peso da 1 grammo.
Questa bilancia, lo diciamo subito pesa al massimo fino a 31 grammi,
infatti mettendo tutti i pesi campione su un piatto la loro somma  16 +
8 + 4 + 2 + 1 = 31 grammi.
Vediamo se con questa bilancia veramente riusciamo a pesare qualunque
masserella fino ad un massimo di 31 grammi.
Di seguito faccio un elenco di tutte le possibilit di pesata, dalla pi
leggera di un grammo fino alla pi pesante di 31 grammi. A fianco di
ogni valore scriver quali pesi campione si devono usare per creare
l'equilibrio. Per esempio, se la masserella incognita fosse di 11 grammi
allora mi serve di usare il pesetto da 8 grammi, quello da due grammi e
quello da 1 grammo. Infatti 8+2+1=11 grammi.
Tabella delle pesate possibili  con la bilancia e pesi campione da usare
per creare l'equilibrio.
1 grammo: Uso il peso campione da 1 grammo
2 grammi: 2
3 grammi: 2 + 1
4 grammi: 4
5 grammi: 4 + 1
6 grammi: 4 + 2
7 grammi: 4 + 2 + 1
8 grammi: 8
9 grammi: 8 + 1
10 grammi : 8 + 2
11 grammi: 8 + 2 + 1
12 grammi: 8 + 4
13 grammi: 8 + 4 + 1
14 grammi: 8 + 4 + 2
15 grammi: 8 + 4 + 2 + 1
16 grammi: 16
17 grammi: 16 + 1
18 grammi: 16 + 2
19 grammi: 16 + 2 + 1
20 grammi: 16 + 4
21 grammi: 16 + 4 + 1
22 grammi: 16 + 4 + 2
23 grammi: 16 + 4 + 2 + 1
24 grammi: 16 + 8
25 grammi: 16 + 8 + 1
26 grammi: 16 + 8 + 2
27 grammi: 16 + 8 + 2 + 1
28 grammi: 16 + 8 + 4
29 grammi: 16 + 8 + 4 + 1
30 grammi: 16 + 8 + 4 + 2
31 grammi: 16 + 8 + 4 + 2 + 1
Come si pu notare abbiamo potuto fare tutte le pesate possibili pur
usando questi strani pesi campione in unico esemplare.
Bene! Ora ci serve un altro strumento che tutti abbiamo a disposizione:
la nostra mano sinistra.
Supponiamo che alla nostra mano sinistra aperta con il palmo rivolto
verso l'alto associamo i pesi campione in questa maniera: il pollicione
sia il peso da 16 grammi, l'indice sia il peso da 8 grammi, il medio sia
il peso da 4 grammi, l'anulare  sia il peso da 2 grammi ed il mignolo
sia il peso da 1 grammo.
Con la mano sinistra aperta in questa maniera il pollicione (16 grammi)
si trova a sinistra ed il mignolo (1 grammo) si trova a destra.
Bene! Ora prendiamo una masserella da pesare. Io so che la masserella da
pesare pesa 21 grammi ma voi non lo sapete e quindi dovete usare la
bilancia per determinare la sua massa.
Cominciamo a mettere dei pesi campione sul piatto. Metto il 16... uhm!
Non basta.
Aggiungo il peso da 8... uhm! Troppo! Levo l'otto e ci metto il 4. Beh!
Quasi ci siamo... ma ancora pende...
Aggiungo il peso da 1. Ah! Ora ci siamo! Abbiamo creato l'equilibrio. La
masserella pesa 21 grammi. Vediamo quali dita, (pesi campione), abbiamo
usato: il pollice (16 grammi), il medio (4 grammi) ed il mignolo (1
grammo). Ora facciamo questa operazione: le dita che non sono servite le
chiudiamo e lasciamo aperte le dita che invece abbiamo usato. Osserviamo
quindi che il pollice sta aperto, l'indice  chiuso, il medio  aperto,
l'anulare  chiuso ed il mignolo  aperto.
Adesso annotiamo un fatto: scriviamo su un pezzo di carta o dove pare a
voi questo che sto per dirvi. Per ogni dito della mano sinistra
scriveremo sul pezzo di carta un 1 od uno 0 a seconda che il dito sia
stato preso in considerazione o meno per fare la pesata. Occorre
scrivere quindi in ogni caso cinque cifre affiancate costituite dallo
zero o dall'uno.
Nel caso della pesata da 21 grammi appena vista allora avr:
1)    Mi  servito il pollice ed allora scriver un 1
2)    Non mi  servito l'indice e scriver uno 0
3)    Mi  servito il medio ed allora scriver un 1
4)    Non mi  servito l'anulare e scriver uno 0
5)    Mi  servito il mignolo ed allora scriver un 1
Osserviamo allora i nostri cinque numeretti: 10101
Beh! Che ci crediate o no questa  la rappresentazione nel sistema di
numerazione binario del numero decimale 21.
Ogni cifra binaria, cio lo 0 o l'1 si chiama bit.
Vediamo ora un'altra pesata stavolta espressa in binario da
interpretare: 10001
Beh! Qui  chiaro che  stato usato il pollice (16 grammi) ed il mignolo
(1 grammo). Il numero decimale corrispondente  quindi 16+1=17
Penso che non sia il caso di stare a farla tanto lunga. Spero che
l'esempio sia servito a capire come si legge e come si compone un numero
binario avente un certo valore. Il numero binario si legge scandendo
tutte le cifre uno, uno, zero, zero eccetera...
Di seguito scrivo tutta la tabella da 1 fino  a 31 in cui il primo
numero  il decimale ed a destra la sua rappresentazione in binario,
tanto ormai avete capito il giochetto. Essa servir a controllare i
vostri esercizi se vi andr di farli.
Decimale; binario
1 00001
2 00010
3 00011
4 00100
5 00101
6 00110
7 00111
8 01000
9 01001
10 01010
11 01011
12 01100
13 01101
14 01110
15 01111
16 10000
17 10001
18 10010
19 10011
20 10100
21 10101
22 10110
23 10111
24 11000
25 11001
26 11010
27 11011
28 11100
29 11101
30 11110
31 11111

Bene, sperando di essere stato chiaro, con questo concludo questa
piccola introduzione e se la cosa vi ha interessato potete pormi delle
domande (e ce ne stanno!!). Con una raccomandazione ragionevole. Nella
vita, io, come tutti, ho diverse cose da pensare per cui i miei
contributi saranno conseguenti ai miei impegni in termini di tempo e
quindi le risposte arriveranno quando avr il modo.
***
d.

 se ti fosse possibile, potresti anche indicare
 qualche esercizio da fare , anche se non si pu pretendere da te che faccia
 pure le correzioni degli esercizi...
r.
il post sui numeri binari l'ho congegnato in modo tale che se qualcuno
ha voglia di fare qualche esercizio pu controllarne da s la
correttezza andando a vedere la tabellina finale in cui per ogni numero
da 1 a 31 vi  a fianco la rappresentazione in binario.
Per esempio potreste prendere un numero a caso, per esempio facciamo il
14. Ovviamente nel gioco della bilancia il peso in effetti gi lo sapete
in quanto lo avete scelto voi, in questo caso il 14, e la bilancia in
effetti serve a vedere quali pesi campione occorre usare per arrivare a
comporre la massa di 14 grammi per arrivare all'equilibrio della
bilancia. Individuate qual  il peso pi grosso che potete mettere sulla
bilancia che ovviamente non superi 14 e mettetelo sul piatto. Ovviamente
 il peso 8 dato che il 16 gi sforerebbe e non andrebbe affatto bene.
Poi aggiungete mano a mano i pesi considerando sempre quello pi grosso
che potrebbe entrare in quella situazione. Adesso sulla bilancia ho il
peso 8 e chiaramente posso aggiungere il 4 dato che "non sforo". 8 + 4
fa 12 e ancora non siamo all'equilibrio. Aggiungo allora il 2 e sono
arrivato all'equilibrio: infatti 8 + 4 + 2 = 14. Ho usato l'indice (peso
8), il medio (peso 4) e l'anulare (peso 2), tutte le altre dita
rimangono chiuse. Adesso comincio a scrivere sul pezzo di carta gli 1 e
gli 0 partendo dal pollice.
Il pollice non l'ho preso allora scrivo 0.
l'indice l'ho preso ed allora scrivo 1
il medio l'ho preso ed allora scrivo 1
l'anulare l'ho preso ed allora scrivo 1
il mignolo non l'ho preso ed allora scrivo 0

Complessivamente quindi vi ritrovate il numero binario 01110 che se
andate a controllare sulla tabellina  proprio 14.
Potete fare le prove con tutti i valori da 0 fino a 31 e controllare
quindi il vostro risultato sulla tabellina.
Potete anche fare il viceversa. Scrivete a caso un numero binario di 5
bit e determinatene il valore decimale. Anche in questo caso la
tabellina pu servire come verifica di controllo.

Sicuramente molti di voi ci avranno gi pensato. Ma come si fa a contare
numeri pi grandi di 31? diciamo fino a 255?
Beh! ovviamente ci vuole la mano di ET l'extraterrestre che ha 8 dita...
(in effetti mi pare che ne avesse 3 per fa niente... passatemi la
licenza!).
In tal caso la mano di ET avr associato alle dita, partendo dal dito
alla estrema sinistra, i seguenti valori che sono, notate bene, di
valore sempre doppio rispetto al dito immediatamente alla destra.
Primo dito a sinistra: peso 128 grammi
Secondo dito da sinistra: peso 64 grammi
Terzo dito da sinistra: peso 32 grammi
Quarto dito da sinistra: peso 16 grammi
Quinto dito da sinistra: peso 8 grammi
Sesto dito da sinistra: peso 4 grammi
Settimo dito da sinistra: peso 2 grammi
Ottavo dito da sinistra: peso 1 grammo

Se fate la somma degli 8 numeri corrispondenti ai pesi associati alle
dita di ET abbiamo 128+64+32+16+8+4+2+1=255
Che  la pesata massima ottenibile con 8 bit.
Ovviamente fra i numeri c' anche lo 0 rappresentato in binario con
00000000 per cui tutti i numeri rappresentabili da 8 bit sono i 255
visti prima pi lo 0. In tutto sono 256 numeri.
Bene! un numero di 8 cifre, (meglio se diciamo 8 bit), pu rappresentare
256 numeri diversi e si chiama... byte!!!!
S il famoso byte  quindi semplicemente un numero binario di 8 bit. Il
numero massimo rappresentabile  255 e rappresenta uno di 256 possibili
numeri. Ogni cifra binaria costituente questo numero di 8 cifre si
chiama bit.
Ma ci avete pensato? la vostra barra braille  ad 8 punti. Mmmm! e
quanti caratteri diversi pu rappresentare il braille ad 8 punti? ma 256
caratteri ovvio! non vi dice niente questa somiglianza?
E se invece la barra  a 6 punti. Beh! facile! 2 elevato 6 caratteri
cio 64 caratteri.
Insomma fra braille e binario c' una strettissima correlazione! diciamo
che sono quasi la stessa cosa. Se il punto c' allora 1, se invece 
abbassato allora 0!
***
d.

 Allora aggiungo una domanda: e se dovessi scrivere un numero maggiore di 31?
 Per esempio 54?
 Oppure non serve?

r.
per rappresentare numeri pi grandi di 31, o in generale qualunque
numero, occorre capire quanti bit ci vogliono per rappresentarlo. Dal
momento che si  capito che tutto gioca con i "pesi"  chiaro che ci
vuole qualche altro pesetto in pi rispetto ai cinque pesi associati
alle dita della mano sinistra. L'esempio con le dita della mano sinistra
l'ho portato per capire il principio della numerazione binaria ed 
chiaro che per rappresentare numeri pi grandi ci vogliono pi dita,  o
meglio dire pi bit.
Nel caso del numero 54 ci serve per forza il peso da 32 grammi. In ogni
caso ricordati che devi sempre rappresentare tutti i bit, anche dei pesi
che non hai usato, (con lo 0).
54 si compone cos:
32 grammi s
16 grammi s
8 grammi no
4 grammi s
2 grammi s
1 grammo no

in definitiva 110110
nota che adesso i bit sono 6 altrimenti non puoi rappresentare il 54.
Con 6 bit (esattamente come nel braille a 6 punti) rappresenti tutti i
numeri fino al 63 che con lo 0 (spazio in braille) fanno 64.
Nota anche che puoi aggiungere tutti gli zeri che vuoi alla sinistra
perch il numero non cambia. E' solo rappresentato con pi bit ma il suo
valore  sempre lo stesso.
Quindi posso rappresentare per esempio il 2 in questa maniera: 10 ma
anche 010, oppure 00000010.
Diversa  la questione se aggiungi degli 0 a destra. Allora il numero
cambia eccome! e sai come cambia? mettendo uno 0 a destra hai
moltiplicato il numero per 2. Esempio: prendi il 3 cioe in binario 011.
Adesso mettici uno 0 a destra e diventa 0110. Questo numero presenta i
pesi 2 e 4 cio vale 6 che  il doppio di 3.
Pare superfluo dirlo ma per calcolare il valore del numero devi partire
da destra. Cio ragionando cos come in questo esempio del numero 47 che
in binario si rappresenta con 101111
Partendo da destra abbiamo:
c' il peso 1
c' il peso 2
c' il peso 4
c' il peso 8
non c' il peso 16
c' il peso 32

Adesso fai la somma dei pesi presenti nel numero: 1+2+4+8+32=47

Adesso di sotto incollo un metodo (algoritmo) pi formale per
rappresentare in binario un numero qualunque (purch sia positivo, cio
in valore assoluto, perch per rappresentare anche i numeri negativi 
un po' pi doloroso e non  ancora il momento perch cambiano molte
carte in tavola).
La difficolt con il metodo algoritmico ora aumenta dato che usciamo dal
familiare visto finora in cui abbiamo contato con le dita e si entra un
po' nella metodologia di pensiero con cui si creano i programmi.
L'esempio  tratto dalle mie dispensine:
Algoritmo di conversione dal decimale al binario
Passo N 1: prendi il numero decimale
Passo N 2: se il numero  0 vai al passo 7 altrimenti vai al passo 3
Passo N 3: dividi il numero per 2
Passo N 4: scrivi il resto della divisione in un foglio
Passo N 5: scrivi il quoziente e consideralo come un nuovo numero
Passo N 6: vai al passo 2
Passo N 7: scrivi i resti delle divisioni in ordine inverso rispetto
all'ordine in cui sono stati generati
Passo N 8: STOP

Esempio: convertire il numero 59 in binario.

59 : 2 = 29 resto = 1
29 : 2 = 14 resto = 1
14 : 2 = 7 resto = 0
7 : 2 = 3 resto = 1
3 : 2 = 1 resto = 1
1 : 2 = 0 resto = 1

Il numero binario si ottiene scrivendo i resti in ordine inverso cio
111011.

***
d.
 lascia stare!
 stanotte non ho chiuso occhio perch stavo divertendomi a fare i numeri
 anche pi grandi di 256 usando tutti i metodi possibili. ahahhha aiuto....
 che forza......
 mi piace molto di pi della numerazione decimale mooolto pi divertente e
 avvincente.
 e santo cielo!....... stanotte leggendo un tuo post sugli hardware e
 software, avevi detto che un byte misura fino ad un massimo di 256.....
 allorch ho detto..... cose del tipo.... ma cosa? aiutooo. sto
 sbagliando...... poi hai confermato la mia intuizione di stanotte.... che lo
 zero conta. ahahhaah e che cavolo non lo sapevo mica.... ho fatto salti
 mortali per fare i calcoli pensando di sbagliare sempre e invece il bit pi
 a sinistra degli otto  che compongono il byte, da 128 quindi sommando tutto
 128+64+32+16+8+4+2+1  uguale a 255. e li  partito il mio viaggio nel
 binario del sistema binario. ne sono uscito indenne.... grazie....
 leggo con amorevolezza le dispensine..... e con la mia compagna dattilo
 braille super rumorosa, svolgo somme e sottrazioni.
 e poi un'altra cosa che mi pare di aver intravisto all'interno di questo
 sistema incredibile..... e cio che quando sommi i vari pesi di ogni bit a
 partire da sinistra a quello di destra,
 il campione di misurazione  sempre un numero prima del campione di
 misurazione successivo. esempio... se sommo 3 pi 2 pi 1, ottengo 7 che 
 un numero prima di 8.......  come se i vari valori si incastrassero nella
 potenza di 2.... quindi se prendessi per esempio 8 pi 4 pi 2 pi 1 il
 risultato  15 che guarda caso  dispari e guarda caso si ferma prima della
 potenza successiva della nostra bilanciona binaria. ahahahah
 dici che  una cavolata?
 un po spiegato male.....  una cosa fresca devo distribuirla bene.
r.
sono molto contento che ti stia appassionando al sistema binario. In
effetti l'Informatica con la I maiuscola parte proprio da questo
sistema. Con il tempo mander anche altri interventi se c' interesse da
parte vostra.
Hai detto tutto giusto:  proprio cos, 7 viene prima della potenza di 2
successiva che  8; 15 viene prima della potenza 16 e cos via.
Adesso timidamente butto li anche qualche rappresentazione un po' pi
formale: con n bit si rappresentano 2 elevato n numeri binari diversi
fra loro (compreso lo 0 ovviamente). Il numero massimo rappresentabile
con n bit  pari a (2 alla n) meno 1.
Adesso puoi vedere bene perch il kilo informatico  1024: esso 
proprio la potenza 2 elevato 10 ed il numero massimo rappresentabile con
10 bit  1023. Il mega invece  2 elevato 20 che tra l'altro per le
propriet delle potenze aventi la stessa base si pu anche scrivere 2^10
per 2^10 (il cappelletto  il simbolo di elevazione a potenza). In
binario quindi abbiamo grandezze che come nome somigliano alle grandezze
decimali per essendo basate sul 2 hanno valori che si discostano un
poco dall'equivalente kilo decimale che vale esattamente 1000.
Aggiungo anche, come curiosit, che tutti i numeri binari che finiscono
con 1 sono dispari e quelli che finiscono per 0 sono pari.
Se sei appassionato a queste cose ti divertir anche conoscere il modo,
molto ingegnoso, con il quale si rappresentano in binario i numeri
negativi. Ti lascio con questo piccolo mistero che al momento non voglio
svelare altrimenti la gente si spaventa e molla tutto...
in binario c' solo lo 0 e l'1 e quindi non c' il trattino del segno
meno da mettere davanti ai numeri per indicare che sono negativi ed
allora come si fa a riconoscere che un numero  negativo?
In effetti le cose subiscono un notevole ampliamento e quello che vi ho
descritto finora, che mantiene ovviamente la sua rilevanza e validit,
rientra come caso particolare dei numeri relativi.

***
d.

 Molte grazie: il sistema mi pare un p simile al scrivere con i numeri
 esadecimali, mutatis mutandis...
r.
s, il binario  somigliante al sistema esadecimale e ci sono delle
curiosit in proposito. Intanto, per chi non sa cosa sia il sistema di
numerazione esadecimale, diciamo brevemente che  un altro sistema di
numerazione usato in informatica dai programmatori e che si fonda sulla
base 16. Mentre in binario la base  il 2 ora la base  il 16. In questo
sistema le cifre possibili sono un misto di cifre e lettere: 0 1 2 3 4 5
6 7 8 9 A B C D E F, cio le 10 cifre del sistema decimale pi le
lettere dalla A alla F. In tutto quindi sono 16 simboli.
il significato ed il valore delle cifre  il seguente.
le cifre dallo 0 al 9 hanno lo stesso valore come nel sistema decimale
mentre per le lettere abbiamo:
A = dieci decimale
B = undici decimale
C = dodici decimale
D = tredici decimale
E = quattordici decimale
F = quindici decimale.

Ora i pesi delle cifre di un numero espresso in esadecimale si devono
considerare in questa maniera. Partendo dalla cifra pi a destra abbiamo:
peso 1: l'unit, che in termini di potenze potremo esprimere anche come
16 elevato 0 che da proprio 1);
peso 16 (o potenza 16 elevato 1)
peso 256 (o potenza 16 elevato 2)
peso 4096 (o potenza 16 elevato 3)
ecc...

Per esempio il numero esadecimale B4 avr il valore 11 per 16 + 4 = 180
decimale
4 rappresenta le unit. La seconda cifra, B, vale 11 decimale che va
moltiplicato per il suo peso che  16 e ci fornisce complessivamente 11
per 16 pi 4 = 180.
In esadecimale il modo con cui si calcola il valore del numero si
avvicina al modo che usiamo nel sistema decimale. 2013 in decimale
infatti significa 3 unit pi 1 decina pi 0 centinaia pi due migliaia.
Ogni cifra anche in decimale va moltiplicata per il suo peso.

Niente paura comunque!
Adesso vi mostro un trucco per scrivere un numero in esadecimale
partendo da un numero binario.
Prendiamo un byte per esempio 10110100 che vale 180 come sappiamo.
Partiamo da destra e prendiamo gli ultimi 4 bit. Essi sono 0100 che
hanno valore quattro. Scriviamo allora il valore in esadecimale che come
si pu vedere dalla tabellina precedente delle cifre esadecimali 
proprio 4 e corrisponde quindi anche al suo valore decimale. Prendiamo
ora altri 4 bit andando sempre verso sinistra. In questo caso sono
proprio gli ultimi 4 bit 1011 pi a sinistra che valgono undici decimale
e vediamo il suo valore esadecimale vedendo nella tabellina. Il valore
di 11 decimale  dato dalla lettera B. Quindi la rappresentazione
esadecimale del numero 180  10110100 in binario e B4 in esadecimale.
In informatica, nel passato, si usava anche il sistema ottale in base 8.
Chiunque comunque, per gioco, si pu costruire un proprio sistema di
numerazione in una base qualunque, ternaria, quaternaria, quinaria eccetera.

***
d.

 no.... ho letto delle cose sui numeri negativi e sul complemento a 2 ma non
 riesco a capire... mi servirebbe una spiegazione delle tue. perch gli
 esempi che ci sono in giro mi risultano difficili da comprendere.
r.

Materiale didattico on line se ne trova in abbondanza.
Di seguito il link per il materiale del corso di programmazione
dell'Universit di Catania
http://www.diit.unict.it/users/michele/didattica/fondamenti/fondamenti/indice.html

Arrivati a questo livello di trattazione del binario, in cui ci si sta
occupando delle rappresentazioni complementate, non  pi tanto semplice
spiegare le cose con esempi terra terra cos come ho fatto con
l'introduzione al sistema di numerazione binario.
Gli esempi che ho riportato in passato sono quelli che uso nei corsi di
formazione per centralinisti telefonici o per la formazione
tifloinformatica nell'ambito dei processi riabilitativi. Anche se
apparentemente banali, essi sono frutto di raffinamenti successivi
sviluppati e perfezionati negli anni per essere intesi da persone senza
preparazioni specifiche di base. Come avrai notato, praticamente non c'
traccia di notazioni matematiche sofisticate e quel poco che c' nelle
dispense  semplificato quanto basta per far capire le cose senza
tuttavia snaturarle.
La trattazione degli aspetti di cui si parla ora, essendo avanzati, non
rientrano quindi fra gli strumenti didattici adattati che io ho messo a
punto per i miei scopi del lavoro tiflodidattico con i disabili della vista.
Questo significa che per gli argomenti avanzati occorre cimentarsi con
il linguaggio e la notazione che si fa in ambito universitario. Ci
comporta una certa dimestichezza con notazioni matematiche che non sono
molto familiari a chi ha una cultura scientifica di livello solo liceale.
Mi prover per a cercare di dare una spiegazione semplice della
rappresentazione in complemento a 2 dei numeri binari.
Consideriamo un insieme di n cifre binarie, per esempio 8 cifre. Abbiamo
quindi 1 byte. In valore assoluto esso rappresenta tutti i numeri in
valore assoluto dallo 0 fino al numero 255.
Dividiamo il range di questi valori a met in questa maniera: Il primo
intervallo sia quello dei numeri da 0 fino a +127, mentre il secondo
intervallo sia quello dei valori da +128 fino a +255.
Il primo intervallo  costituito da numeri che hanno il bit pi a
sinistra pari a 0.
00000000
00000001
00000010
...
...
01111111

Il secondo intervallo  costituito da numeri che hanno il bit pi a
sinistra pari ad 1.
10000000
10000001
10000010
...
...
11111111

Nella rappresentazione in complemento a 2 si fa questa assunzione:
Il primo bit a sinistra pari a 0 rappresenta i numeri positivi, percio
il byte rappresenta tutti i numeri che vanno da 0 a +127.
Il primo bit a sinistra pari ad 1 rappresenta i numeri negativi in
quest'ordine:
10000000  da considerare pari a -128. Il trattino ovviamente significa
segno meno. Ci significa che il primo bit a sinistra in notazione in
complemento a 2 deve essere sempre considerato di peso -128. Gli altri
bit pi a destra vanno considerati con il valore positivo che gi conosci.
10000001 vale -127, infatti  -128+1=-127
10000010 vale -126 infatti  -128+2=-126
...
...
11111111 vale -1 infatti  -128+1+2+4+8+16+32+64=-128+127=-1

Quindi se si guarda l'asse dei numeri la sequenza dei valori
rappresentati  da leggersi come nella seguente tabella in cui a
sinistra vi  il numero in valore assoluto cos come hai visto con i
numeri binari senza segno fino ad ora, ed a destra il valore del numero
con segno. Fino a 127 le due rappresentazioni corrispondono. A partire
da 128 i numeri sono quelli negativi e sar -128, -127, -126, ..., -1
Piccola curiosit: la tabella non l'ho fatta a mano altrimenti avrei
fatto notte. L'ho fatta in un attimo con excel e poi ho incollato
nell'editor di testo con il quale scrivo le mail prima di passare queste
al programma di posta.
Le descrizioni continuano dopo la tabella.

0    0
1    1
2    2
3    3
4    4
5    5
6    6
7    7
8    8
9    9
10    10
11    11
12    12
13    13
14    14
15    15
16    16
17    17
18    18
19    19
20    20
21    21
22    22
23    23
24    24
25    25
26    26
27    27
28    28
29    29
30    30
31    31
32    32
33    33
34    34
35    35
36    36
37    37
38    38
39    39
40    40
41    41
42    42
43    43
44    44
45    45
46    46
47    47
48    48
49    49
50    50
51    51
52    52
53    53
54    54
55    55
56    56
57    57
58    58
59    59
60    60
61    61
62    62
63    63
64    64
65    65
66    66
67    67
68    68
69    69
70    70
71    71
72    72
73    73
74    74
75    75
76    76
77    77
78    78
79    79
80    80
81    81
82    82
83    83
84    84
85    85
86    86
87    87
88    88
89    89
90    90
91    91
92    92
93    93
94    94
95    95
96    96
97    97
98    98
99    99
100    100
101    101
102    102
103    103
104    104
105    105
106    106
107    107
108    108
109    109
110    110
111    111
112    112
113    113
114    114
115    115
116    116
117    117
118    118
119    119
120    120
121    121
122    122
123    123
124    124
125    125
126    126
127    127
128    -128
129    -127
130    -126
131    -125
132    -124
133    -123
134    -122
135    -121
136    -120
137    -119
138    -118
139    -117
140    -116
141    -115
142    -114
143    -113
144    -112
145    -111
146    -110
147    -109
148    -108
149    -107
150    -106
151    -105
152    -104
153    -103
154    -102
155    -101
156    -100
157    -99
158    -98
159    -97
160    -96
161    -95
162    -94
163    -93
164    -92
165    -91
166    -90
167    -89
168    -88
169    -87
170    -86
171    -85
172    -84
173    -83
174    -82
175    -81
176    -80
177    -79
178    -78
179    -77
180    -76
181    -75
182    -74
183    -73
184    -72
185    -71
186    -70
187    -69
188    -68
189    -67
190    -66
191    -65
192    -64
193    -63
194    -62
195    -61
196    -60
197    -59
198    -58
199    -57
200    -56
201    -55
202    -54
203    -53
204    -52
205    -51
206    -50
207    -49
208    -48
209    -47
210    -46
211    -45
212    -44
213    -43
214    -42
215    -41
216    -40
217    -39
218    -38
219    -37
220    -36
221    -35
222    -34
223    -33
224    -32
225    -31
226    -30
227    -29
228    -28
229    -27
230    -26
231    -25
232    -24
233    -23
234    -22
235    -21
236    -20
237    -19
238    -18
239    -17
240    -16
241    -15
242    -14
243    -13
244    -12
245    -11
246    -10
247    -9
248    -8
249    -7
250    -6
251    -5
252    -4
253    -3
254    -2
255    -1

Per interpretare un numero scritto in complemento a 2 allora si deve
vedere il suo primo bit di segno. Se il bit  0 allora il numero 
positivo ed il suo valore lo puoi calcolare con i sistemi che gi
conosci. Se invece il numero comincia per 1 allora esso  negativo e va
letto in questa maniera. Occorre fare la somma di -128 pi il valore che
ottieni dagli altri bit calcolati con il metodo normale.
Per esempio
Il byte 10000110 vale -128+2+4=-122
Il byte 11001111 vale -128+1+2+4+8+64=-49
Il byte 01000011 vale +67

Per cambiare di segno un numero scritto in complemento a 2 si possono
seguire due metodi.
Primo metodo: invertire tutti i bit del numero e sommare 1.
Secondo metodo: partendo da destra ed andando verso sinistra occorre
scrivere tutti i bit inalterati fino al primo 1 incluso e invertire
tutti gli altri bit.
Esempio:
+30 in binario  00011110
Il -30 si fa lasciando tutti i bit inalterati partendo da destra fino al
primo 1 incluso e invertendo gli altri.
+30 = 00011110
-30 = 11100010

Con la notazione in complemento a 2 le operazioni aritmetiche si fanno
normalmente cos come facciamo in decimale.
I computers lavorano internamente con la notazione in complemento a 2.
Per esempio, in linguaggio macchina, se nel programma vi  un'istruzione
di salto con indirizzamento relativo ad una istruzione contenuta in una
determinata cella di memoria, questo salto  rappresentato dal numero di
bytes che bisogna aggiungere (salto in avanti), o togliere (salto
all'indietro), all'indirizzo della cella attuale, per raggiungere la
cella contenente l'istruzione macchina referenziata. Ovviamente i salti
in avanti saranno specificati da numeri positivi mentre i salti
all'indietro, essendo delle sottrazioni dall'indirizzo base, saranno
negativi.
