Maison  >  Article  >  développement back-end  >  Comment calculer le logarithme base 2 en C/C sans fonction intégrée ?

Comment calculer le logarithme base 2 en C/C sans fonction intégrée ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-27 08:13:03443parcourir

How to Calculate Logarithm Base 2 in C/C   without a Built-in Function?

Comment calculer le logarithme de base 2 en C/C à l'aide de la conversion mathématique

En C/C, les fonctions de logarithme intégrées sont log (), qui calcule le logarithme népérien (base e), et log10(), qui calcule le logarithme base 10. Cependant, vous devrez parfois calculer le logarithme base 2, et ils n'offrent pas directement cette fonctionnalité.

Pour calculer le logarithme base 2 en utilisant des mathématiques simples, vous pouvez le convertir en une autre base puis utiliser la fonction log existante. L'équation de cette conversion est :

log<sub>2</sub> (x) = log<sub>y</sub> (x) / log<sub>y</sub> (2)

où y peut être n'importe quelle base. Généralement, y vaut 10 ou e, selon les fonctions de journalisation disponibles dans votre langage de programmation.

En C/C, vous pouvez utiliser la fonction log() pour calculer la base du logarithme e et log10() pour calculer le logarithme base 10. Ainsi, pour calculer le logarithme base 2, vous pouvez utiliser le code suivant :

<code class="c">#include <iostream>
#include <cmath>

double log2(double x) {
  return log10(x) / log10(2);
}

int main() {
  double number;
  std::cout << "Enter a number: ";
  std::cin >> number;

  std::cout << "log2(" << number << ") = " << log2(number) << std::endl;

  return 0;
}</code>

Ce code prend le nombre saisi, calcule le log base 10 et le divise par le log base 2. Le résultat est le logarithme base 2 du nombre saisi.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn