“Sono tutti 1 e 0”. La gente lo dice quando fa una battuta o un’osservazione sarcastica. Quando si tratta del pensiero dei computer, è proprio vero. E a livello di hardware, non c’è altro. Il processore, la memoria, le varie forme di immagazzinamento, le connessioni USB, HDMI e di rete, insieme a tutto il resto in quel cellulare, tablet, portatile o desktop usa solo 1 e 0. I byte permettono di raggruppare gli 1 e gli 0. Quindi sono di grande aiuto per tenerli organizzati. Vediamo come lo fanno.
I byte sono l’unità di misura per i dati e i programmi memorizzati e utilizzati nel computer. Anche se il byte esiste da molto tempo nella storia del computer e ha assunto diverse forme, la sua attuale lunghezza di 8 bit è ben stabilita. Presi singolarmente o come gruppi adiacenti, i byte sono il modo più comunemente accettato di organizzare i bit in un computer.
Cos’è un bit? Un bit è una cifra binaria, cioè può avere solo due valori. Nei computer i due valori che un bit può avere sono zero (0) e uno (1). Tutto qui, nessun’altra scelta. Un byte è solo otto bit binari che vengono presi insieme per rappresentare numeri binari. Attraverso vari schemi di codifica i numeri possono rappresentare un’ampia varietà di altre cose come i caratteri con cui scriviamo.
La tabella sottostante mostra un singolo byte Big-Endian mostrando i singoli bit di questo byte e le loro potenze di due associate. Tutti i byte di dati sono in formato Big-Endian. Ci sono altri byte, come il codice del programma dove la formattazione Endian non si applica. I valori decimali di ogni potenza di due sono mostrati con ogni bit per riferimento. Immaginate una linea tra il Bit 3 e il Bit 4 è dove il byte è suddiviso in quattro gruppi di bit chiamati Nibble. Little-Endian è un formato di byte molto usato. Restate sintonizzati per saperne di più sugli Endian. Se siete curiosi del nome, fate una ricerca su (etimologia di endian).
Un byte Big-Endian:
Bit0 | Bit1 | Bit2 | Bit3 | Bit4 | Bit5 | Bit6 | Bit7 | |
Potenza di 2 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 21 |
Valore decimale | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Ogni pennino di un byte può contenere un numero binario di quattro bit come mostrato nella tabella seguente. Se un bit è impostato a “1”, quella potenza di due si aggiunge al valore del nibble. Se un bit è impostato su “0”, quella potenza di due non si aggiunge al valore del nibble. Un byte, che è composto da due nibble, può contenere un numero esadecimale a due cifre. I bit sono davvero tutto ciò che un computer può usare. I programmatori e gli ingegneri che sviluppano l’hardware dei computer usano l’esadecimale per rendere più facile il trattamento dei bit. Nella tabella qui sotto il bit più significativo è a sinistra 20, 21, 22, 23
Uno spillo Big-Endian:
Binario Numero |
Esidecimale Valore |
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | A |
1011 | B |
1100 | C |
1101 | D |
1110 | E |
11 | F |
Ti spiego Big-Endian iniziando con un diagramma di un byte. Le linee più lunghe alla fine di questo riquadro sono i confini del byte in modo che se state disegnando un gruppo di byte adiacenti sarebbe chiaro dove un byte ha lasciato e un altro ha iniziato. Le linee piccole dividono la cornice in posizioni individuali dove ognuno degli otto bit può essere mostrato. La linea media nel mezzo divide il byte in due pezzi uguali di quattro bit che sono i nibble. Anche i nibble hanno una storia lunga e varia. Non ho mai visto che siano stati standardizzati. Tuttavia l’opinione corrente, ben stabilita, è che i nibble sono gruppi di quattro bit come li ho mostrati qui sotto. Tutte queste linee esistono solo quando la gente disegna i byte. Le linee non esistono nel computer.
L’Upper Nibble e il Lower Nibble sono etichette come sarebbero usate in un byte Big-Endian. In Big-Endian, la cifra più significativa è all’estremità sinistra di un numero. Così il Lower Nibble è la metà meno significativa del numero nel byte. Allo stesso modo il bit meno significativo è sulla destra LSBit (di solito notato come LSB) sta per Least Significant Bit. E il bit più significativo è a sinistra. L’Upper Nibble a sinistra è la metà più significativa del numero. MSBit (di solito notato come MSB) è il bit più significativo. Questo è lo stesso di come scriviamo i numeri decimali con la cifra più significativa a sinistra. Questo è chiamato Big-Endian perché la “grande fine” del numero viene prima.
Con il byte che può contenere due cifre esadecimali, un byte può contenere numeri esadecimali tra 00 e FF (da 0 a 255 in decimale) Quindi se stai usando i byte per rappresentare i caratteri di una lingua leggibile dall’uomo devi solo dare ad ogni carattere, segno di punteggiatura, ecc. un numero. (Questo è solo uno degli usi dei byte. I byte sono anche usati come codice di programma che il tuo computer esegue, numeri per vari dati che potresti avere, e tutto il resto che abita un computer nella CPU, nella memoria, nell’immagazzinamento, o che si muove sui vari bus e porte di interfaccia.
Come si è scoperto ci sono due formati di byte comunemente usati. Il Little-Endian è stato usato negli esempi precedenti. La sua caratteristica è avere la cifra più significativa a sinistra e la cifra meno significativa a destra.
C’è anche un formato chiamato Little-Endian. Come ci si potrebbe aspettare è l’opposto del Big-Endian con la cifra meno significativa a sinistra e la cifra più significativa a destra. Questo è l’opposto di come scriviamo i numeri decimali. Il Little-Endian non è usato per l’ordine dei bit in un byte, ma è usato per l’ordine dei byte in una struttura più grande. Per esempio: Un numero grande contenuto in una parola Little-Endian di due byte avrebbe il byte meno significativo a sinistra. Se il numero di due byte fosse in Big-Endian, il byte più significativo sarebbe a destra. Il Little-Endian è usato solo nel contesto di lunghi numeri multibyte per impostare l’ordine di significato dei byte nella struttura dati più grande.
Ci sono ragioni per usare entrambi gli ordinamenti Big e Little byte e le ragioni sostanziali sono al di là dello scopo di questo articolo. Tuttavia, Little-Endian tende ad essere usato nei microprocessori. I processori x86-64 nella maggior parte dei PC usano il formato di byte Little-Endian. Anche se le generazioni successive hanno istruzioni speciali che forniscono un uso limitato del formato Big-Endian. Il formato di byte Big-Endian è ampiamente utilizzato in rete e in particolare in quei grandi computer Z. Ora non sei necessariamente limitato all’uno o all’altro. I nuovi processori ARM possono usare entrambi i formati Endian. Dispositivi come i microprocessori che possono usare sia il formato Big-Endian che Little Endian sono a volte chiamati Bi-Endian.
Bene, a volte hai davvero bisogno di più di un byte per contenere un numero. A tal fine ci sono formati più lunghi disponibili che sono composti da più byte. Per esempio: I processori x86-64 hanno parole che sono 16 bit o 2 byte che sono allineati uno accanto all’altro da capo a coda, per così dire. Hanno anche Double Words (32 bit o 4 byte), e Quad Words (64 bit o 8 byte). Ora questi sono solo esempi di forme di dati resi disponibili dall’hardware del processore.
I programmatori che lavorano con i linguaggi hanno molti altri modi per organizzare i bit e i byte. Quando il programma è pronto, un compilatore o un altro meccanismo converte il modo in cui il programma ha organizzato bit e byte in forme di dati che l’hardware della CPU può trattare.