Da leggere prima:
Nella lezione precedente, abbiamo parlato delle proprietà di sequenze composte da uno o più bit. Abbiamo mostrato che ogni volta che si aggiunge un bit, è possibile raddoppiare il numero delle combinazioni ottenibili, semplicemente assegnando rispettivamente i valori 0 ed 1 al bit più a sinistra e ripetendo due volte le sequenze ottenute con un bit in meno.
Perciò, se iniziamo utilizzando un solo bit:
One bit | |
0 | Partiremo sempre usando 0 |
1 | E successivamente 1 |
Da uno a due bit | |
00 | Ripetere le sequenze ottenute con un bit, aggiungendo uno zero a sinistra. |
01 | |
10 | Cambiare il bit a sinistra in 1, mentre il bit più a destra ripete l’andamento delle due righe precedenti |
11 |
Solitamente, gli zeri posizionati nella parte sinistra della sequenza possono essere omessi, dimodoché 01 può essere considerato equivalente ad 1 e 00 semplicemente a 0.
Usando lo stesso metodo, possiamo facilmente scrivere le combinazioni corrispondenti a qualunque numero di bit.
Combinazioni ottenibili con 4 bit | |
0 | 0 |
1 | 1 |
10 | 2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | 10 |
1011 | 11 |
1100 | 12 |
1101 | 13 |
1110 | 14 |
1111 | 15 |
Le prime due combinazioni ottenibili aggiungendo il quinto bit | |
10000 | 16 |
10001 | 17 |
Scrivendo le sequenze di bit nell’ordine corretto, è possibile associare ciascuna combinazione di bit ad un numero intero. Osservando le righe evidenziate, è possibile notare che tali combinazioni hanno delle proprietà particolari: innanzitutto solo uno dei bit della sequenza è pari ad 1, inoltre il loro valore corrisponde sempre ad una potenza di 2, ove la prima combinazione mostrata vale: 2^0=1.
Sequences with just a 1 in the leftmost position | ||
1 | 1 | 2^0=1 |
10 | 2 | 2^1=2 |
100 | 4 | 2^2=4 |
1000 | 8 | 2^3=8 |
10000 | 16 | 2^4=16 |
Se in una particolare sequenza è presente più di un bit impostato ad 1, il valore del numero intero corrispondente alla sequenza stessa potrà essere calcolato sommando i valori di ciascuno dei bit pari ad 1, come se essi comparissero da soli. Ad esempio, il valore della sequenza 1100 può essere calcolato, rispettivamente in notazione binaria ed in quella decimale, così come mostrato nel seguito.
1000+100=1100 \Rightarrow 8+4=12Per lo stesso motivo, il valore decimale della sequenza 1110 potrà essere calcolato nel seguente modo:
1000+100+10=1110 \Rightarrow 8+4+2=14Possiamo inoltre renderci conto che il valore associato a ciascun bit raddoppia o si dimezza se esso viene spostato verso sinistra o verso destra all’interno della sequenza. Per tale motivo, per moltiplicare o dividere un numero binario per 2 è sufficiente spostare tutti i suoi bit rispettivamente verso sinistra o verso destra di una posizione. In altri termini, per moltiplicare si aggiungerà uno zero a destra, mentre per dividere sarà sufficiente cancellare il bit più a destra.
Ad esempio, se vogliamo moltiplicare 1100 per 2, potremo scrivere:
1100 \cdot 10 = 1000\cdot10+100\cdot10= 10000+1000=11000Usando numeri decimali, la stessa espressione potrà essere espressa come segue:
12\cdot2 = 8\cdot2+4\cdot2=16+8=24Questo significa anche che i numeri che terminano a destra con uno zero sono pari, mentre quelli che terminano con un 1 sono dispari.
Risorse correlate: