|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2010
Messaggi: 67
|
[c/generico] conversione intero (x, -x) a float (1, -1)
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 ![]() Vi sottopongo la mia versione certamente ingenua, nella speranza che qualcuno possa fornirmi soluzioni più ottimali. Codice:
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; } } Ultima modifica di Duchamp : 21-10-2010 alle 18:18. |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Aug 2006
Messaggi: 362
|
casting?
potrebbe andare? |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2006
Città: Perugia - San Benedetto del Tronto
Messaggi: 348
|
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?
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Apr 2010
Messaggi: 67
|
Quote:
![]() 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... |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:53.