chi spiega cosa fanno queste 2 righe di codice

gingardu:
c'è qualche anima pia che spiega meglio che puo cosa fanno queste righe di codice sopratutto l'ultima

orcalogia metti il codice tra i tag code che non si campisce una bega

 negative=data[47];                            // check for a negative number
    for(x=25; x<48; x++)                         // ingore redundant first 24 bits
     { 
  reading=reading+(data[x]*pow(2,x-25));      // add 2^ for each bit

negative=data[47];
direi che non ha bisongno di spiegazioni

poi dall'elemento 25 al 47 (c'è il <), per ognuno ne prende il valore e lo usa come esponente (ma l'esponente parte da 0 a 47-25) per una potenza in base 2, poi lo somma al risultato dei valori precedenti.

è un modo per compattare i valori di data in una unica variabile, però dando per scontato che data contega solo 1 o 0. in teoria avrebbe fatto molto prima facendo

reading = (reading << 1)+(data[x]&0x01)

però partendo dall'elemento 47 fino al 25

poi invece magari data assume altri valori e la cosa è un calcolo che ha un significato differente... senza maggiori informazioni non posso dire altro.