Math.log2()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

A função Math.log2() retorna o logaritmo de base 2 de um número, que é

x>0,Math.log2(x)=log2(x)=the uniqueysuch that2y=x\forall x > 0, \mathtt{\operatorname{Math.log2}(x)} = \log_2(x) = \text{the unique} ; y ; \text{such that} ; 2^y = x

Sintaxe

Math.log2(x)

Parâmetros

x Um número.

Retorno

O logaritmo de base 2 de um número. Caso o número seja negativo, NaN é retornado.

Descrição

Caso o valor de x seja menor que 0, então o retorno será sempre NaN.

Por log2() ser um método estático de Math, você sempre o usará como Math.log2(), ao invés de usá-lo como método de um objeto Math criado (Math não é um construtor).

Esta função é equivalente a Math.log(x)/Math.log(2). Para log2(e) use a constante Math.LOG2E que é 1 / Math.LN2.

Exemplos

Usando Math.log2()

js
Math.log2(3); // 1.584962500721156
Math.log2(2); // 1
Math.log2(1); // 0
Math.log2(0); // -Infinity
Math.log2(-2); // NaN
Math.log2(1024); // 10

Polyfill

Este Polyfill simula a função Math.log2. Note que é retornado um valor não prcesiso Observe que é retornado valores imprecisos em algumas entradas (like 1 << 29), envolva em Math.round() se estiver trabalhando com máscaras de bits.

js
Math.log2 =
  Math.log2 ||
  function (x) {
    return Math.log(x) * Math.LOG2E;
  };

Especificações

Specification
ECMAScript Language Specification
# sec-math.log2

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também