Decimali, Binari & C
Alcune osservazioni - il BIT
|
Alcune osservazioni interessanti
Osserviamo la tabella:
- una cifra ottale richiede 3
cifre binarie
Binario |
Ottale |
000 |
0 |
001 |
1 |
010 |
2 |
011 |
3 |
100 |
4 |
101 |
5 |
110 |
6 |
111 |
7 |
Esempio: per scrivere 6base10 in binario devo scrivere
tre cifre: 110
- una cifra decimale richiede
quattro cifre binarie
Decimale |
Binario |
0 |
0000 |
1 |
0001 |
2 |
0010 |
3 |
0011 |
4 |
0100 |
5 |
0101 |
6 |
0110 |
7 |
0111 |
8 |
1000 |
9 |
1001 |
Esempio: per scrivere 9base 10 in
binario devo scrivere quattro cifre: 1001
- con quattro cifre binarie posso
esprimere numeri decimali fino a quindici
Decimale |
Binario |
0 |
0000 |
1 |
0001 |
2 |
0010 |
3 |
0011 |
4 |
0100 |
5 |
0101 |
6 |
0110 |
7 |
0111 |
8 |
1000 |
9 |
1001 |
10 |
1010 |
11 |
1011 |
12 |
1100 |
13 |
1101 |
14 |
1110 |
15 |
1111 |
Esempio: per scrivere 15base10 in binario devo scrivere
quattro cifre: 1111base2
Queste osservazioni non sono solo curiosità, ma saranno utili più avanti.
Per inciso, non è arbitrario aggiungere zeri per riempire le colonne vuote a
sinistra: ha lo stesso senso che aggiungere in decimale degli zeri dopo la
virgola. Serve essenzialmente per allineare le colonne e per indicare che nell'
operazione sono impegnate n cifre, anche se le prime a sinistra sono a zero.
Vedremo più avanti che questo è indispensabile quando si passa dalla teoria ai
registri e agli IO reali del microcontroller.
I più attenti avranno anche scoperto che la riduzione drastica delle cifre a solo due
segni produce la scrittura di numeri enormemente lunghi .
Se XxZvv
volesse portare 2010 dal decimale al binario, scriverebbe :
11111011010.
Se
volesse riportare 1211789 arriverebbe a scrivere
100100111110110001101 !!!
Il Bit
Introduciamo inoltre un ulteriore concetto: quando la numerazione binaria
viene applicata al computer, si usa definire ogni cifra come "bit".
Quindi:
un bit è una cifra
in un numero binario |
Per cui il binario
11111011010 è composto da
undici cifre, ovvero da
11 bit.
Il numero binario 11001100 è composto da 8 bit, e così via.
Dunque, un computer a 8 bit lavora su numeri binari di 8 cifre;
uno a 64 bit lavora su numeri binari di 64 cifre.
Per avere idea delle grandezza dei numeri in questione:
Bit |
Massimo numero binario |
Valore decimale |
4 |
1111 |
15 |
8 |
11111111 |
255 |
16 |
1111111111111111 |
65535 |
32 |
1111111111111111111111111111111 |
4294967295 |
64 |
11111111111111111111111111111111111111111111111111111111111111 |
18446744073709551615 |
Questo solitamente indica che un computer a 8 bit può operare su numeri fino
a 255 decimale in una sola operazione; per trattare numeri maggiori si devo
implementare algoritmi composti da più istruzioni.
Se il computer lavora su 16 bit, il numero trattabile in una sola operazione
arriverà a 65535, e così via.
Quindi il numero di bit è un indicatore di massima della capacità di
trattazione dei dati.
Per curiosità, la parola bit deriva dalla contrazione dell' inglese binary
digit, ovvero cifra binaria (e digit è la traslazione del latino
digitus, dito, il primo supporto del contare).
Nello stesso tempo bit, nell' inglese non tecnico, ha significato di
"piccola parte, un poco", come nelle frasi "a little bit" o
"just a bit". In meccanica, un "bit" è una piccola parte di
un attrezzo, come ad esempio la punta di un cacciavite a lame intercambiabili
("bit of tool" = punta di utensile).
|