Un altro modo per utilizzare i bitwise su variabili float o double consiste nel ricorrere alle union. Con qualcosa del genere:
utilizziamo i bitwise su un valore intero (my_union.y) che però ha la stessa rappresentazione binaria del valore float my_union.x...codice:union float_int { float x; int y; }; ... union float_int my_union; ... scanf("%f", & my_union.x) ... mask = 0x7f800000; xesp = my_union.y & mask; xesp >>= 23; xesp = xesp - bias; ...
Non avevo mai pensato alla soluzione con l'indirizzo... mi sembra abbastanza intelligente (ovviamente con la correzione di MItaly).