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]