In informatica il nibble (chiamato alternativamente anche nyble o nybble per assonanza con il termine byte) è un'unità di misura usata per indicare un gruppo di 4 bit. Il termine è entrato in uso per indicare la metà di un byte a causa dell'omofonia di quest'ultimo con la parola inglese bite, che significa "morso": in inglese, infatti, nibble significa "morsettino".
Utilizzo
Rappresenta comunemente la metà di un byte, ed è per questo che viene indicato anche come "mezzo byte" (half-byte in inglese) e utilizzato specialmente per rappresentare una singola cifra esadecimale, potendo esprimere con 4 bit i valori compresi tra [0000, 1111] cioè [0, 15] ossia [0, F] in esadecimale. Con 2 nibble si possono rappresentare i 256 (16²) possibili valori di un byte.
Storia
Il termine nibble comincia ad essere utilizzato negli anni '50 del XX secolo: sembra che il primo ad utilizzarlo sia stato il professor David B. Benson nel 1958 presso il Los Alamos Scientific Laboratory.[1]
Il nibble era molto più usato in passato, quando erano molto diffuse le CPU a 4 bit. Con un nibble era possibile rappresentare una cifra della codifica BCD o una cifra in codifica "packed decimal" tipica dei mainframe IBM.
Alcune architetture ormai completamente scomparse utilizzavano addirittura dei nibble da 3 bit.
Le unità floppy Disk II degli Apple II lavoravano inizialmente con nibble di 5 o 6 bit mentre nella documentazione di quei computer era spesso indicato il nibble come gruppo di 8 bit. Per evitare fraintendimenti sul numero di bit espressi da un nibble vengono perciò usati oggi altri termini più espliciti come semi-ottetto, quadbit o quartetto.[1]
Nell'assembly dei microcontrollori PICmicro è ancora utilizzata un'istruzione denominata SWAPF
che scambia tra di loro i 2 nibble di un registro.[2] Inoltre è presente un flag che nelle operazioni aritmetiche agisce sul riporto del digit (Digit Carry).
Tabella di nibble
I 16 nibble e i loro equivalenti in altri sistemi numerici:
|
|
|
|
|
|
|
|
|
|
|
|
|
0hex |
= |
0dec |
= |
0oct |
|
0 |
0 |
0 |
0 |
|
|
1hex |
= |
1dec |
= |
1oct |
|
0 |
0 |
0 |
1 |
|
|
2hex |
= |
2dec |
= |
2oct |
|
0 |
0 |
1 |
0 |
|
|
3hex |
= |
3dec |
= |
3oct |
|
0 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4hex |
= |
4dec |
= |
4oct |
|
0 |
1 |
0 |
0 |
|
|
5hex |
= |
5dec |
= |
5oct |
|
0 |
1 |
0 |
1 |
|
|
6hex |
= |
6dec |
= |
6oct |
|
0 |
1 |
1 |
0 |
|
|
7hex |
= |
7dec |
= |
7oct |
|
0 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8hex |
= |
8dec |
= |
10oct |
|
1 |
0 |
0 |
0 |
|
|
9hex |
= |
9dec |
= |
11oct |
|
1 |
0 |
0 |
1 |
|
|
Ahex |
= |
10dec |
= |
12oct |
|
1 |
0 |
1 |
0 |
|
|
Bhex |
= |
11dec |
= |
13oct |
|
1 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Chex |
= |
12dec |
= |
14oct |
|
1 |
1 |
0 |
0 |
|
|
Dhex |
= |
13dec |
= |
15oct |
|
1 |
1 |
0 |
1 |
|
|
Ehex |
= |
14dec |
= |
16oct |
|
1 |
1 |
1 |
0 |
|
|
Fhex |
= |
15dec |
= |
17oct |
|
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Note
Voci correlate
Collegamenti esterni