JSFiddle - React, Tailwind, and code Playground

JavaScript

function calc1(x)
{
    var bits = 1;
    while ( x >= (1 << bits) )
        bits++;
   
    return bits;
}

function calc2(x)
{
    var bits = 1;
    var limite = 2;
    while ( x >= limite ) {
        bits++;
        limite *= 2;
    }    
    return bits;
}

function calc3(numero)
{
    return Math.floor( Math.log(numero) / Math.log(2) ) + 1;
}

//Testando método 1
var start1 = new Date().getTime();
for (i = 0; i < 50000000; ++i) {
    calc1(i)
}
var end1 = new Date().getTime();
var time1 = end1 - start1;

//Testando método 2
var start2 = new Date().getTime();
for (i = 0; i < 50000000; ++i) {
    calc2(i)
}
var end2 = new Date().getTime();
var time2 = end2 - start2;

//Testando método 3
var start3 = new Date().getTime();
for (i = 0; i < 50000000; ++i) {
    calc3(i)
}
var end3 = new Date().getTime();
var time3 = end3 - start3;

alert('Método 1: ' + time1);
alert('Método 2: ' + time2);
alert('Método 3: ' + time3);