Logarithme binaire

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Tracé de lb n, la fonction logarithme de base 2.

En mathématiques, le logarithme binaire (log2 n) est le logarithme de base 2. C’est la fonction inverse de la fonction puissance de deux : x ↦ 2x. Le logarithme binaire de x est la puissance à laquelle le nombre 2 doit être élevé pour obtenir la valeur x. Par exemple, le logarithme binaire de 1 est 0, le logarithme binaire de 2 est 1, le logarithme binaire de 4 est 2, le logarithme binaire de 8 est 3.

On le notait ld () (pour logarithmus dualis), mais la norme ISO 80000-2[1] indique que log2(x) devrait être symbolisé par lb (x).

Musique[modifier | modifier le code]

En musique, le logarithme binaire intervient dans la formule permettant de déterminer une valeur en cents (unité d’intervalle de fréquence).

Informatique[modifier | modifier le code]

En informatique, l'orientation binaire du matériel fait souvent du logarithme binaire le plus facile à calculer et le plus précis, les autres en étant dérivés.

En effet, soit (e; m) la représentation virgule flottante binaire d'un nombre réel non nul x, où e est un entier porteur de l'ordre de grandeur, et m un significande tel que 1 ≤ |m| < 2. Alors, si m>0 :

x = m×2e entraîne lb(x) = e+lb(m).

et le calcul de lb(x) se ramène ainsi au domaine [1, 2[.

Par exemple, 10 = 23 × 1,25, lb(10)= 3 + lb(1,25).

où lb(1,25) est la partie fractionnaire du logarithme cherché.

Chaque bit de lb(1,25) peut se calculer directement bit à bit à l'aide des relations :

lb(1) = 0 ; lb(x) = lb(x²)/2 ; lb(x)= lb(x/2)+1.

Quand on cherche un nouveau bit de x (0< x < 2) :

  • on élève x au carré
    • si x vaut au moins 2, on note 1, on divise x par 2 et on poursuit ;
    • sinon, on note 0 et on poursuit[2].

Ainsi

lb(10) = 112+lb(1,25)= 112+lb(1,5625)/2
= 112+lb(2,44140625)/4 = 11,012+lb(1,220703125)/4
= 11,012+lb(1,490116119)/8 = 11,012+lb(2,220446049)/16
= 11,01012+lb(1,110223025)/16 = 11,010102+lb(1,232611)/32 = 11,010102+lb(1,519330)/64 = 11,0101002+lb(2,308)/128........

Or 11,01010012 = 3,3203125, et on a déjà 2 3,3203125 = 9,9888...

Remarque[modifier | modifier le code]

lb(10) = 3,32... entraîne que le codage binaire d'un nombre décimal occupera au moins 3,32 bits par chiffre décimal.

Référence[modifier | modifier le code]

  1. ISO 80000-2:2009. Organisation internationale de normalisation. Consulté le 18 janvier 2012.
  2. Dean K.J., 1969, A fresh approach to binary logarithm computing, Electronic Engineering.

Voir aussi[modifier | modifier le code]