Oppure

Loading
04/11/10 23:45
Mariol
Buona sera! Nonostante ne esistano già, sto provando a creare una versione personalizzata di una libreria per la gestione di immagini TIFF attraverso l'uso di classi. Per poter gestire il contenuto delle immagini sto seguendo la descrizione della loro struttura byte per byte. Per esempio all'inizio di ogni immagine è presente un image file header composto da 8 byte il cui ordine può essere big endian o little endian a seconda del valore dei primi due byte. Tralasciando comunque questi dettagli, il problema che ho è il seguente:
Supponendo di dover leggere un intero di 16 bit, leggendo 8 bit per volta, cioè due byte attraverso per esempio un codice del genere:
char dueByte[2];
ifstream imgStream("immagine.tif");

imgStream.read(dueByte, sizeof(dueByte));

E supponendo che l'ordine dei byte sia little endian, come posso ricostruire l'intero partendo dai due byte?
Io ho pensato ad una cosa del genere:
int numeroFinale;
char *charPointer = (char *)(&numeroFinale);

*charPointer = dueByte[0];
*(charPointer+1) = dueByte[1];

Teoricamente funziona però mi chiedevo se è questo il metodo standard o se esiste qualcosa di meglio.

Ah quasi dimenticavo, siccome è il mio primo post, ciao a tutti!! Studio, o almeno ci provo, ing. informatica a Parma e sono un drogato di big bang theory :rotfl:
aaa
05/11/10 11:12
TheKaneB
qualsiasi algoritmo valido per lo scambio di due variabili va bene. :-) ciao e benvenuto!
aaa
06/11/10 20:32
Mariol
Postato originariamente da TheKaneB:

qualsiasi algoritmo valido per lo scambio di due variabili va bene. :-) ciao e benvenuto!


Ok perfetto, io cercavo chissà quale algoritmo sopraffino :rofl:

Comunque grazie per la risposta! :)
aaa