PDA

View Full Version : [c/generico] conversione intero (x, -x) a float (1, -1)


Duchamp
21-10-2010, 18:09
Salve a tutti,
come da oggetto ho la necessità di trasformare un valore intero in float, convertendolo all'interno di un range che va da -1.0 a 1.0 (penso che un'operazione di questo tipo si chiami normalizzazione, non vorrei però spararla grossa :fagiano:).
Vi sottopongo la mia versione certamente ingenua, nella speranza che qualcuno possa fornirmi soluzioni più ottimali.


int main() {
int int_val[8];
float f_val[8];

int_val[0] = 0;
int_val[1] = 3000;
int_val[2] = -3400;
int_val[3] = 9000;
int_val[4] = -9000;
int_val[5] = 12340;
int_val[6] = -9030;
int_val[7] = 2304;


for (int i=0; i<8; i++) {
if (int_val[i] > 0)
f_val[i] = int_val[i]/32767.0;
else
f_val[i] = -int_val[i]/32768.0;
}

}


Ringrazio e saluto!

kruccio
22-10-2010, 17:59
casting?
potrebbe andare?

:.Blizzard.:
22-10-2010, 18:05
Scusa la banalità, ma se si tratta di riportare in maniera proporzionata un intervallo di valori a un intervallo compreso tra -1 e 1 si tratta semplicemente di trovare il massimo, metterlo in proporzione con 1 e trovare tutti gli altri valori di conseguenza no?

tuccio`
22-10-2010, 18:23
Scusa la banalità, ma se si tratta di riportare in maniera proporzionata un intervallo di valori a un intervallo compreso tra -1 e 1 si tratta semplicemente di trovare il massimo, metterlo in proporzione con 1 e trovare tutti gli altri valori di conseguenza no?sperando che 1/INT_MAX non sia un numero con troppe cifre decimali (per troppe intendo che eccedano la precisione di float e double), perché le proporzioni andrebbero a farsi benedire

Duchamp
24-10-2010, 20:27
Scusa la banalità, ma se si tratta di riportare in maniera proporzionata un intervallo di valori a un intervallo compreso tra -1 e 1 si tratta semplicemente di trovare il massimo, metterlo in proporzione con 1 e trovare tutti gli altri valori di conseguenza no?

Esatto, è quello che ho proposto nella mia soluzione :)
Non essendo sicuro della realizzazione "pratica" però, cercavo eventuali forme più performanti o sicure.

@kruccio:
purtroppo il casting non va bene, perchè devo mettere in proporzione i valori...