Disons que j'ai un double a = 0.3;
. Comment serais-je en mesure de changer l'exposant de la variable, sans utiliser les fonctions mathématiques comme pow()
, ou en le multipliant manuellement.c change l'exposant d'un double
Je suppose que je devrais accéder aux adresses mémoire de la variable en utilisant des pointeurs, trouver l'exposant et le changer manuellement. Mais comment pourrais-je accomplir cela?
Notez que ceci est sur un système 8 bits, et je suis en train de trouver un moyen plus rapide de multiplier le nombre par 10^12, 10^9, 10^6 ou 10^3.
Meilleures salutations!
Je ne pense pas que vous aurez beaucoup de succès. La partie exponentielle d'un point flottant typique est un exposant * binaire *, pas un dans la base 10. – unwind
Voyant un ''double' 'est un nombre à virgule flottante * binaire, ajuster les bits de l'exposant n'aidera pas à multiplier par des puissances de dix, seulement par des puissances de deux. – delnan
Avez-vous besoin d'un résultat précis, ou une approximation serait-elle suffisante pour vous? –