Go Down

Topic: come trasformare un numero negativo in positivo, (Read 21844 times) previous topic - next topic

GINGARDU


piccolo dettaglio: se hai un short e gli passi -128,o se hai un int e gli passi -32678(i valori limite dei due tipi),l'abs probab ti restituirà -128 e -32678..motivo:range short -128,127   range int -32678,+32767


questo  è un problema un po fasullo  perche di solito  con arduino bisogna sempre vedere il risultato finale,

se  un progetto funziona benissimo e ci sta "comodamente"  nella memoria non vedo il motivo perche bisogna a tutti i costi "ottimizzare" o cambiare un float con un int per risparmiare qualche "briciola"   quando ancoraa hai 10k di memoria vuota,


al momento la vedo cosi  (poi magari mi sbaglio)

m_ri

dipende dal progetto..alcune volte sta cosa può essere un problema,altre volte no..dicevo solo xkè uno raramente non  pensa ai casi limite,ma alcune volte potrebbero uscire fuori ste cose..

leo72


se  un progetto funziona benissimo e ci sta "comodamente"  nella memoria non vedo il motivo perche bisogna a tutti i costi "ottimizzare" o cambiare un float con un int per risparmiare qualche "briciola"   quando ancoraa hai 10k di memoria vuota,

Non sta così.
Nelle architetture Harward come gli atmel la memoria Flash del codice è separata dalla memoria Ram dove vengono create le variabili. Per cui i 10 kB di Flash liberi non c'entrano nulla con la Ram ancora disponibile. Puoi saturare la Ram anche con un programma di pochi kB, basta creare un array di 1000 int (2 byte cad.) per mandare in tilt il microcontrollore.

m_ri

poi solitamente passare da float a int non è un'ottimizzazione,ma proprio un cambio di design del programma..

PaoloP




....fin dai tempi del vecchio BASIC ;)

Visti i nickname che girano, siamo in pochi a ricordarlo ...
AciK '74 :-)

+1  ;)

Leo ti sei tolto un'anno?
Dovevi scrivere +2  :smiley-mr-green: :smiley-mr-green: :smiley-mr-green:

leo72


Ho messo un +1 per condivisione del pensiero, non ci pensavo minimamente a questo giochino matematico  ;)

Go Up