parseInt not converting decimal to binary?
parseInt(number, base)
returns decimal value of a number presented by number
parameter in base
base.
And 11 is binary equivalent of 3 in decimal number system.
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'>
Use toString() instead of parseInt
:
11..toString(2)
var str = "11";
var bin = (+str).toString(2);
console.log(bin)
According JavaScript's Documentation:
The following examples all return NaN:
parseInt("546", 2);
// Digits are not valid for binary representations
As stated in the documentation for parseInt
: The parseInt() function parses a string argument and returns an integer of the specified radix (the base in mathematical numeral systems).
So, it is doing exactly what it should do: converting a binary value of 11
to an integer value of 3
.
If you are trying to convert an integer value of 11
to a binary value than you need to use the Number.toString
method:
console.log(11..toString(2)); // 1011