c++ - la moyenne de deux nombres à virgule flottante sans opérateur/?
巴扎黑
巴扎黑 2017-07-03 11:41:47
0
2
988

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 / ?

巴扎黑
巴扎黑

répondre à tous(2)
代言

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.

代言

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 ~

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal