Si quelqu'un avait une méthode pour connaitre en une instruction C (ou à peine plus) pour connaître la valeur d'un float lorsqu'on a simplement sa représentation hexa au format IEEE 32 bits, je serai preneur !
Merci d'avance !
Si quelqu'un avait une méthode pour connaitre en une instruction C (ou à peine plus) pour connaître la valeur d'un float lorsqu'on a simplement sa représentation hexa au format IEEE 32 bits, je serai preneur !
Merci d'avance !
La norme IEEE 754 ne définit pas de représentation; elle indique combien de bits il faut pour chacune des parties, mais pas leurs positions respectives. Il y a au moins 3 représentations utilisées.
Il y a donc deux possibilités:
- ou tu connais la représentation utilisée et tu l'interprètes (je te conseille de regarder les fonctions ldexp? si tu prends cette voie)
- ou tu supposes que le format est celui de ta machine, tu stockes ta représentation dans un tableau de unsigned char correctement aligné (par exemple parce qu'il est dans une union), et puis tu fais un cast du tableau en flottant (ça donne un comportement défini par l'implémentation, accéder au membre flottant de l'union donnerait un comportement indéfini).
Je te remercie. J'avais finalement fait quelque chose de semblable à ta deuxième solution (pas d'unsigned char, mais ça y ressemble)...
Partager