Maison > Questions et réponses > le corps du texte
Comme le titre, les entiers peuvent utiliser des opérations sur bits, comment résoudre les nombres à virgule flottante En raison de la limite de mots du titre, le texte original explique comment calculer la moyenne de deux nombres à virgule flottante sans opérateur /
?
代言2017-07-03 11:43:47
Merci pour l'invitation.
float x = 1.1;
float y = 1.2;
int * xx = (int*)&x;
int * yy = (int*)&y;
int k = (*xx + *yy) >> 1;
float * kk = (float*)&k;
cout << *kk << endl; // 1.15 ,结果正确
J'ai utilisé double au début, mais la sortie a débordé. J'ai soudainement pensé que sur mon ordinateur (la plupart des ordinateurs), double faisait 8 octets et int ne faisait que 4 octets, alors changez simplement double en float.
Il n'y a aucune difficulté dans le code. La seule, je suppose, est la conversion d'entiers et de nombres à virgule flottante en binaire. Vous connaîtrez cette partie si vous avez étudié la composition informatique, la représentation à virgule flottante IEEE.
代言2017-07-03 11:43:47
average = (a + b) * 0.5;
Hors sujet,
J'ai l'impression que cette question n'est en fait pas une question de programmation, elle devrait être un casse-tête ~