- Messaggi: 1222
- Ringraziamenti ricevuti 104
Convertire 4 char in un Float
11 Anni 3 Mesi fa - 11 Anni 3 Mesi fa #1
da StefA
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Convertire 4 char in un Float è stato creato da StefA
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Autore della discussione
- Moderator
Riduci
Di più
11 Anni 3 Mesi fa - 11 Anni 3 Mesi fa #2
da shinshi
Risposta da shinshi al topic Convertire 4 char in un Float
Forse dico una sciocchezza:
Fai il casting della char più significativa
Moltiplichi per 256
fai il casting della seconda char più significativa
Sommi alla prima flot
Moltiplichi per 256...
e così via.
Saluti
Luca
Fai il casting della char più significativa
Moltiplichi per 256
fai il casting della seconda char più significativa
Sommi alla prima flot
Moltiplichi per 256...
e così via.
Saluti
Luca
Ultima Modifica 11 Anni 3 Mesi fa da StefA.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- shinshi
- Elite Member
Riduci
Di più
- Messaggi: 293
- Ringraziamenti ricevuti 29
11 Anni 3 Mesi fa - 11 Anni 3 Mesi fa #3
da StefA
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Risposta da StefA al topic Convertire 4 char in un Float
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Autore della discussione
- Moderator
Riduci
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
11 Anni 3 Mesi fa - 11 Anni 3 Mesi fa #4
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Convertire 4 char in un Float
Ciao,
per come e' organizzato un float fare uno shift non ha molto senso.
Infatti hai una mantissa ed esponente e traslare causerebbe problemi se si facesse uno shift nel senso stretto della parola. Questo pero' non toglie che un compilatore possa supportare uno shift per float.
Nel caso di float e' forse meglio effettuare la moltiplicazione per la potenza di due necessaria.
In questo modo sei indipendente dal compilatore.
Non ho ben capito se i 4 bytes sono una parte di un unico numero.
In qual caso quello che farei e' lavorare con un intero long.
E fare tutte le operazioni sullo stesso. Una volta compattati i 4 bytes effettuerei un cast per la conversione in float.
Saluti,
Mauro
per come e' organizzato un float fare uno shift non ha molto senso.
Infatti hai una mantissa ed esponente e traslare causerebbe problemi se si facesse uno shift nel senso stretto della parola. Questo pero' non toglie che un compilatore possa supportare uno shift per float.
Nel caso di float e' forse meglio effettuare la moltiplicazione per la potenza di due necessaria.
In questo modo sei indipendente dal compilatore.
Non ho ben capito se i 4 bytes sono una parte di un unico numero.
In qual caso quello che farei e' lavorare con un intero long.
E fare tutte le operazioni sullo stesso. Una volta compattati i 4 bytes effettuerei un cast per la conversione in float.
Saluti,
Mauro
Ultima Modifica 11 Anni 3 Mesi fa da StefA.
Si prega Accedi o Crea un account a partecipare alla conversazione.
11 Anni 3 Mesi fa - 11 Anni 3 Mesi fa #5
da shinshi
Risposta da shinshi al topic Convertire 4 char in un Float
@StefA
Più o meno intendevo come dici tu, a patto che dato1 sia il dato più significativo. Però una cosa che vorrei chiederti è come hai ottenuto i 4 byte, perchè mi viene in mente che anche questo sarebbe da tenere in considerazione. Faccio un esempio usando la calcolatrice di windows:
Converto in binario 4,3e7 = 00000010 10010000 00100000 11000000
dato1 = 00000010 = 2 più significativo
dato2 = 10010000 = 144
dato3 = 00100000 = 32
dato4 = 11000000 = 192 meno significativo
2*256=512
(512+144)*256=167936
(167936+32)*256=42999808
(42999808+192)=43000000 Con la calcolatrice funziona. 4,3e7
Più o meno intendevo come dici tu, a patto che dato1 sia il dato più significativo. Però una cosa che vorrei chiederti è come hai ottenuto i 4 byte, perchè mi viene in mente che anche questo sarebbe da tenere in considerazione. Faccio un esempio usando la calcolatrice di windows:
Converto in binario 4,3e7 = 00000010 10010000 00100000 11000000
dato1 = 00000010 = 2 più significativo
dato2 = 10010000 = 144
dato3 = 00100000 = 32
dato4 = 11000000 = 192 meno significativo
2*256=512
(512+144)*256=167936
(167936+32)*256=42999808
(42999808+192)=43000000 Con la calcolatrice funziona. 4,3e7
Ultima Modifica 11 Anni 3 Mesi fa da StefA.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- shinshi
- Elite Member
Riduci
Di più
- Messaggi: 293
- Ringraziamenti ricevuti 29
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Login
© LaurTec 2006 - 2024