Start · Sprachen · JavaScript · Referenz · Math.LOG2E

Math.LOG2E

Eigenschaft

Konstante für den Logarithmus von <code>e</code> zur Basis 2, also log₂(e) ≈ 1,4426950408889634.

seit JavaScript ES1 (Baseline: alle Browser, Node.js) Kategorie: method-property

Signatur

Math.LOG2E

Beschreibung

Math.LOG2E ist eine statische, schreibgeschützte Dateneigenschaft des Math-Objekts. Sie enthält den Wert log₂(e) ≈ 1.4426950408889634. Mathematisch ist das der Kehrwert von Math.LN2 (ln 2 ≈ 0,693). Es gilt also Math.LOG2E ≈ 1 / Math.LN2.

Die Konstante braucht man vor allem, um einen natürlichen Logarithmus in einen Logarithmus zur Basis 2 umzurechnen: log₂(x) = ln(x) · log₂(e). Das ist praktisch, wenn ein Wert bereits als natürlicher Logarithmus vorliegt, etwa bei Entropieberechnungen in der Informationstheorie (Umrechnung von „nats“ in „Bits“) oder bei statistischen Formeln.

Da Math kein Konstruktor ist, greift man immer direkt über Math.LOG2E zu. Die Eigenschaft ist weder beschreibbar noch aufzählbar oder konfigurierbar. Für die direkte Berechnung von log₂(x) gibt es seit ES2015 die Methode Math.log2(), die meist genauer und besser lesbar ist.

Rückgabewert

Typ
number
Beschreibung
Der konstante Wert log₂(e) ≈ 1.4426950408889634.

Beispiele

Wert der Konstante auslesen

console.log(Math.LOG2E);
// Zusammenhang mit Math.LN2 prüfen (Rundung wegen Gleitkomma)
console.log((Math.LOG2E * Math.LN2).toFixed(10));
1.4426950408889634 1.0000000000

Natürlichen Logarithmus in log₂ umrechnen

// Liegt ln(x) bereits vor, spart man sich eine zweite Logarithmus-Berechnung
const lnToLog2 = (lnWert) => lnWert * Math.LOG2E;

const ln1024 = Math.log(1024);
console.log(lnToLog2(ln1024).toFixed(6));
console.log(Math.log2(1024)); // moderne Alternative
10.000000 10

Shannon-Entropie in Bits berechnen

// Entropie zuerst in nats (natürlicher Logarithmus), dann in Bits
const entropieBits = (wahrscheinlichkeiten) => {
  const nats = -wahrscheinlichkeiten
    .filter((p) => p > 0)
    .reduce((summe, p) => summe + p * Math.log(p), 0);
  return nats * Math.LOG2E;
};

console.log(entropieBits([0.5, 0.5]).toFixed(4));       // fairer Münzwurf
console.log(entropieBits([0.25, 0.25, 0.25, 0.25]).toFixed(4));
1.0000 2.0000

Schreibschutz im Strict Mode

'use strict';
try {
  Math.LOG2E = 2;
} catch (fehler) {
  console.log(fehler instanceof TypeError);
}
console.log(Math.LOG2E);
true 1.4426950408889634

// Wichtig · Fallstricke

  • Schreibgeschützt: Eine Zuweisung wie Math.LOG2E = 2 wird im normalen Modus stillschweigend ignoriert und löst im Strict Mode einen TypeError aus.
  • Gleitkomma-Genauigkeit: Math.log(x) * Math.LOG2E kann bei Zweierpotenzen leicht vom exakten Ergebnis abweichen (z. B. 2.9999999999999996 statt 3). Für exakte Ergebnisse bei ganzzahligen Exponenten ist Math.log2() besser geeignet. Ergebnisse gegebenenfalls runden, bevor man sie mit === vergleicht.
  • Nicht verwechseln: Math.LOG2E ist log₂(e) ≈ 1,443, Math.LN2 ist ln(2) ≈ 0,693, und Math.LOG10E ist log₁₀(e) ≈ 0,434.
  • Kompatibilität: Die Konstante gibt es seit ECMAScript 1 und sie wird von allen Browsern und Node.js-Versionen unterstützt.