Nibble
# Nibble

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 in binario una singola cifra esadecimale, potendo esprimere con 4 bit i valori compresi tra [0000, 1111] cioè [0, 15] ossia [0, F] in esadecimale, quella che viene indicata in inglese digit, ossia proprio "cifra". Con 2 nibble espressi in cifre esadecimali si possono rappresentano i 256 possibili valori di un byte (dato che 16x16 fa 256).

## 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.

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.

Nell'assembly dei microcontrollori PICmicro è ancora utilizzata un'istruzione denominata SWAPF che scambia tra di loro i 2 nibble di un registro. 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:

| $0_{hex}$ | = | $0_{dec}$ | = | $0_{oct}$ | 0 | 0 | 0 | 0 |
| - | - | - | - | - | - | - | - | - |
| $1_{hex}$ | = | $1_{dec}$ | = | $1_{oct}$ | 0 | 0 | 0 | 1 |
| $2_{hex}$ | = | $2_{dec}$ | = | $2_{oct}$ | 0 | 0 | 1 | 0 |
| $3_{hex}$ | = | $3_{dec}$ | = | $3_{oct}$ | 0 | 0 | 1 | 1 |
| $4_{hex}$ | = | $4_{dec}$ | = | $4_{oct}$ | 0 | 1 | 0 | 0 |
| $5_{hex}$ | = | $5_{dec}$ | = | $5_{oct}$ | 0 | 1 | 0 | 1 |
| $6_{hex}$ | = | $6_{dec}$ | = | $6_{oct}$ | 0 | 1 | 1 | 0 |
| $7_{hex}$ | = | $7_{dec}$ | = | $7_{oct}$ | 0 | 1 | 1 | 1 |
| $8_{hex}$ | = | $8_{dec}$ | = | $10_{oct}$ | 1 | 0 | 0 | 0 |
| $9_{hex}$ | = | $9_{dec}$ | = | $11_{oct}$ | 1 | 0 | 0 | 1 |
| $A_{hex}$ | = | $10_{dec}$ | = | $12_{oct}$ | 1 | 0 | 1 | 0 |
| $B_{hex}$ | = | $11_{dec}$ | = | $13_{oct}$ | 1 | 0 | 1 | 1 |
| $C_{hex}$ | = | $12_{dec}$ | = | $14_{oct}$ | 1 | 1 | 0 | 0 |
| $D_{hex}$ | = | $13_{dec}$ | = | $15_{oct}$ | 1 | 1 | 0 | 1 |
| $E_{hex}$ | = | $14_{dec}$ | = | $16_{oct}$ | 1 | 1 | 1 | 0 |
| $F_{hex}$ | = | $15_{dec}$ | = | $17_{oct}$ | 1 | 1 | 1 | 1 |
