Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-05-2009, 20:35   #1
Lucio Settimio Severo
Junior Member
 
Iscritto dal: Aug 2008
Messaggi: 24
[C++] Problema di conversione con i float

Salve a tutti,
Sto sviluppando un piccolo programmino (non ho molta esperienza di programmazione, sono solo in terza superiore) che acquisice delle informazioni dai file 3ds, e tra questi dati ci sono ovviamente delle coordinate, espresse in float.
Seguendo una guida che ho trovato in internet, ho memorizzato il file binario in un vettore di unsigned int delle dimensioni del file (anche se occupa parecchio spazio non è un problema in questo caso), e poi lo scansiono e prelevo i dati che mi servono.
Quando prendo un valore float dal file, lo trovo nella classica forma con segno, esponente e mantissa, tipo 0x4068BE28, ma quando cerco di metterlo in una variabile float, lo considera come se tentassi di mettere un intero, quindi considerando l'esponente ed il segno come parte del numero, e quel numero anziche darmi 3.6366062, mi segna 1.08061e+009.
Ho capito il perchè di questo risultato, ma non riesco a mettere questo valore nel float nel modo corretto, come posso fare?
Lucio Settimio Severo è offline   Rispondi citando il messaggio o parte di esso
Old 19-05-2009, 21:35   #2
BrutPitt
Senior Member
 
L'Avatar di BrutPitt
 
Iscritto dal: Mar 2009
Città: Bologna
Messaggi: 1174
Immaginio che tu abbia buoni motivi per non acquisire gia' i dati in un vettore di float... altrimenti ti consiglierei di optare per l'acquisizione diretta in float.

Invece se devi mantenere l'array di unsigned int, puoi utilizzare una union per assegnare l'intero al float... qualcosa del genere.

Codice:
typedef union _CONVERT {
    float f;
    int i;
} CONVERT;

int main(void) 
{

CONVERT au;

    printf("sizeof float %d, sizeof int %d\n\n", sizeof(float), sizeof(int));

/*****************************************
    Assegni ad au.i il valore intero 
    au.f condivide il dato in rappresentazione float
******************************************/
    au.i = 0x4068BE28;   
    
    printf(" i=0x%x\n f=%f\n", au.i, au.f);

}
Per la portabilita'... condizione affinche' cio' funzioni e' che la "dimensione" del tipo di dato float sia uguale a quella degli int.
E dato che il float segue lo standard IEEE, e' necessario che l'int sia 4byte (32 bit).

Ultima modifica di BrutPitt : 19-05-2009 alle 21:52.
BrutPitt è offline   Rispondi citando il messaggio o parte di esso
Old 19-05-2009, 22:23   #3
Lucio Settimio Severo
Junior Member
 
Iscritto dal: Aug 2008
Messaggi: 24
Ti ringrazio, adesso funziona benissimo .
Si purtroppo non posso memorizzare con un vettore di float altrimenti avrei problemi con altri dati.
Lucio Settimio Severo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
AMD: l'alternativa al DLSS 5 sarebbe in ...
Canon EOS R8 Mark II: sensore da 24,2 MP...
Alla Napoli Shipping Week 2026 arriva il...
Addio bollo: il Governo cancella la tass...
Speciale Logitech G: mouse PRO X SUPERLI...
Cosa pensano Altman, Amodei, Benioff e H...
Microsoft: evento il 7 ottobre dedicato ...
Scoperti 84 corpi cosmici anomali: cosa ...
Dimensity 9600 Pro contro A20 Pro, il nu...
HillMiles MileCity1 torna a 648,99€: e-b...
Enel Mobile, il debutto è sempre ...
Nuova rimodulazione per il fisso di TIM ...
iPhone 18 Pro e Pro Max, preordini sotto...
Ha craccato 26 giochi: ora Denuvo vuole ...
Xiaomi 18 Pro, il lancio è uffici...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:45.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v