Maison  >  Questions et réponses  >  le corps du texte

c++ - la moyenne de deux nombres à virgule flottante sans opérateur/?

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

巴扎黑巴扎黑2637 Il y a quelques jours896

répondre à tous(2)je répondrai

  • 代言

    代言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.

    répondre
    0
  • 代言

    代言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 ~

    répondre
    0
  • Annulerrépondre