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);