Dizionario

Cosa significa ordine dei byte?

L'ordine dei byte è uno dei dettagli nascosti che trovi in un file quando ne controlli i metadati. Scopri che cosa significa e che cosa ti dice su come è stato scritto il tuo file.

byte-order

L'ordine dei byte, noto anche come endianness, descrive la sequenza in cui vengono memorizzati i byte di un valore più grande. I computer possono scrivere questi byte partendo da un'estremità o dall'altra, e il file deve indicare da quale estremità ha iniziato, in modo che qualsiasi lettore successivo ottenga di nuovo lo stesso numero.

I due ordini di byte

Un singolo byte è inequivocabile. I numeri troppo grandi per stare in un solo byte devono essere suddivisi in più byte, ed è qui che le due convenzioni si separano:

  • Big-endian: la memorizzazione o l'invio parte dal byte che contiene i bit più significativi, con significatività decrescente a seguire
  • Little-endian: la memorizzazione o l'invio parte dal byte che contiene i bit meno significativi, con significatività crescente a seguire

Prendiamo il numero 4660, che richiede due byte. Un file big-endian li scrive come 12 34 e un file little-endian come 34 12. Stesso numero, ordine opposto. Esistono anche forme miste, descritte come mixed-endian o middle-endian, ma sono rare. Entrambi gli ordini principali sono usati tutti i giorni e quello che trovi dipende dal dispositivo o dal programma che ha creato il file.

Quali file lo contengono

Il campo è più conosciuto nei TIFF e in tutto ciò che è costruito sulla struttura TIFF, che include il blocco di metadati Exif all'interno delle foto JPEG e i formati RAW delle fotocamere come NEF, CR2, ARW e DNG. Questi file iniziano con un marcatore di due lettere, II per Intel o MM per Motorola, le aziende i cui processori hanno reso comune ciascun ordine. Un report di solito lo esplicita come Little-endian (Intel, II) o Big-endian (Motorola, MM). La fotocamera, lo scanner o il programma che ha scritto i metadati lo ha scelto.

I contenitori audio hanno fatto la stessa scelta a livello dell'intero formato: WAV memorizza i suoi valori in little-endian e AIFF li memorizza in big-endian, il che è uno dei motivi per cui due formati che contengono esattamente gli stessi campioni audio non sono intercambiabili byte per byte.

Perché è importante per il tuo file

L'ordine dei byte è il motivo per cui i metadati scritti su una macchina possono sembrare privi di senso su un'altra. Un lettore che ignora il marcatore, o presume l'ordine sbagliato, non fallisce in modo elegante: produce date impossibili, valori di esposizione assurdi e lunghezze che puntano oltre la fine del file, oppure dichiara semplicemente i metadati illeggibili. Conoscere l'ordine ti dice come il file può essere aperto e elaborato correttamente.

Conta doppiamente se modifichi i metadati, perché i nuovi valori devono essere riscritti nell'ordine dichiarato dal file. E se quel marcatore stesso è danneggiato, l'intero blocco di metadati di solito diventa illeggibile anche se l'immagine o l'audio all'interno del file è perfettamente integro. Il campo descrive solo come è strutturato il file, quindi non contiene nulla di personale su di te o sul tuo dispositivo.