Signatur
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
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));
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
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));
Schreibschutz im Strict Mode
'use strict';
try {
Math.LOG2E = 2;
} catch (fehler) {
console.log(fehler instanceof TypeError);
}
console.log(Math.LOG2E);
// Wichtig · Fallstricke
- Schreibgeschützt: Eine Zuweisung wie
Math.LOG2E = 2wird im normalen Modus stillschweigend ignoriert und löst im Strict Mode einenTypeErroraus. - Gleitkomma-Genauigkeit:
Math.log(x) * Math.LOG2Ekann bei Zweierpotenzen leicht vom exakten Ergebnis abweichen (z. B.2.9999999999999996statt3). Für exakte Ergebnisse bei ganzzahligen Exponenten istMath.log2()besser geeignet. Ergebnisse gegebenenfalls runden, bevor man sie mit===vergleicht. - Nicht verwechseln:
Math.LOG2Eist log₂(e) ≈ 1,443,Math.LN2ist ln(2) ≈ 0,693, undMath.LOG10Eist 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.