J'ai un Je cherche un moyen de faire cela. P> P> non signé long long long code> (ou
uint64_t code>) et souhaitez le convertir en un
double code>. Le double doit avoir le même motif de bits que la valeur
code>. De cette façon, je peux définir les bits de la double "à la main".
3 Réponses :
Méfiez-vous de Union code> et
Reterpret_cast
@Saksham Oui, par "UB", cela signifie un comportement indéfini.
Le moyen portable de le faire est avec Mais avant de vous assurer de savoir exactement ce que vous faites et quelle représentation de point flottante est utilisée (bien que IEEE754 est un choix populaire / courant). Vous voudrez éviter toutes sortes de valeurs problématiques telles que l'infini, le NAN et les nombres de dénigrement. P> P> memcpy code> (vous pouvez également être capable de le faire conditionnellement avec
Reterpret_cast CODE> ou un syndicat, mais ceux-ci ne sont pas certains d'être portable parce qu'ils violent la lettre des règles strictes-alias):
Merci pour l'explication.
Je crois que la norme vous permet de "réinterpret_cast
Ce qui suit utilise un pointeur vide.
Une violation aliasante stricte des comportements non définis. C'est la même chose que la réponse de Dasblinkenlight mais avec un temporaire totalement inutile.
Je savais que ma réponse est la même que celle de Dasblinkenlight, mais comme elle utilise une syntaxe complètement différente, elle semble être une méthode différente. Ainsi, j'ai pensé qu'il était approprié de poster comme une réponse à la question. Et comme pour le fait qu'il s'agisse d'un comportement indéfini, je ne connais pas d'un compilateur ou d'un système incapable de faire face à celui-ci (à condition que les deux variables soient de la même taille).
L'ajout du temporaire est totalement inutile, la méthode est identique. En outre, c'est un comportement indéfini, et c'est ça.
Demandez-vous comment faire cela? Avoir du mal à analyser une question i> en dehors de cela.
En C99, vous pouvez le faire légalement via une union. En C ++, vous devez le faire en utilisant un
memcpy () code>.
If'n yer se sentir comme bein 'un dangereux badboy, yer outil o' choisir serait quelque chose comme un Ceci ici coulé, jeune feller.