Se tu hai un numero di n cifre, in un qualsiasi sistema di numerazione posizionale, per avere il suo valore devi prendere ciascun simbolo e moltiplicarlo per la base elevata alla sua (posizione - 1):
codice:
25 = 2 * 10^1 + 5 * 10^0 (ovviamente in base 10)
Come è noto, ciascun simbolo ha un differente valore a seconda della posizione che occupa nella rappresentazione del numero.
Probabilmente lui intende visualizzare il valore corrispondente alla "stringa" di caratteri che ci sono dentro al file... con una piccola parentesi: i dati, nella maggior parte dei calcolatori, vengono salvati in LITTLE ENDIAN ossia capovolti. Questo significa che la lettura del valore deve essere effettuata al contrario: 25 verrebbe rappresentato come 52, di conseguenza le posizioni non vanno a scalare da sinistra verso destra, ma viceversa.
Ma qual'è il sistema di numerazione utilizzato nei file? E' la base 255 (chiamata, comunemente, ASCII): il carattere 'A', per esempio, ha valore 65, il 'B' ha valore 66, uno spazio ha valore 32, ecc...
Per questo, quel programma prende i primi 2 byte (che andrebbero letti al contrario) e valorizza ciascuna cifra al suo valore posizionale.
Esempietto:
codice:
Stringa: AB
essendo in Little Endian dovremmo leggerla al contrario: BA
Questo è un valore, in ASCII: B * 256^1 + A * 256^0
Questo è il relativo valore:
66 * 256^1 + 65 * 256^0 =
66 * 256 + 65 * 1 =
16896 + 65 = 16961
Spero di essere stato quanto più chiaro possibile ed esauriente. Il discorso sui sistemi di numerazione posizionali andrebbe, probabilmente, approfondito, ma non è questa la sede (il topic) adatta.
Ciao.