Ho bisogno di manipolare direttamente la bitmask di un float.Per cui sapendo che i float in genere hanno 32 bit (mi interessano quelli a singola precisione), sto provando ad ottenere e a cambiare il valore di un float bit per bit.
Però mi sono accorto che deferenziando il puntatore la modifica non ha effetto.
Ecco un esempio di cosa faccio:

codice:
    float value=0.0;
    uint32_t* ptr;
    ptr=(uint32_t*)&value;
    *ptr=4;
    printf("%f",value);
Sorprendentemente mi stampa 0.Invece dovrebbe stampare il valore che ha un float a singola precisione che ha il terzo bit della mentissa meno significativo a 1 (va vicino a zero).
Ho pensato che il problema era un arrotondamento, ma non funziona neanche con valori più grandi.