Según tengo entendido, el sistema numérico binario utiliza un conjunto de dos números, 0 y 1 para realizar cálculos.
Por que:
console.log(parseInt("11", 2)); devuelve 3 y no 00001011 ? http://www.binaryhexconverter.com/decimal-to-binary-converter
Use toString() en lugar de parseInt :
11..toString(2) var str = "11"; var bin = (+str).toString(2); console.log(bin)Según la documentación de JavaScript:
Todos los siguientes ejemplos devuelven NaN:
parseInt("546", 2);// Los dígitos no son válidos para representaciones binarias
parseInt(number, base) devuelve el valor decimal de un número presentado por el parámetro number en base base.
Y 11 es el equivalente binario de 3 en el sistema numérico decimal.
var a = {}; window.addEventListener('input', function(e){ a[e.target.name] = e.target.value; console.clear(); console.log( parseInt(a.number, a.base) ); }, false); <input name='number' placeholder='number' value='1010'> <input name='base' placeholder='base' size=3 value='2'>Como se indica en la documentación de parseInt : la función parseInt() analiza un argumento de cadena y devuelve un número entero de la base especificada (la base en los sistemas numéricos matemáticos).
Entonces, está haciendo exactamente lo que debería hacer: convertir un valor binario de 11 a un valor entero de 3 .
Si está tratando de convertir un valor entero de 11 a un valor binario, necesita usar el método Number.toString :
console.log(11..toString(2)); // 1011