# Convert Binary to Decimal

A binary number is a number expressed in base-2, as opposed to conventional decimal numbers in base-10.

Below is a live calculator.

Binary | Decimal | |
---|---|---|

➜ |

We also have a tool to convert decimal to binary.

## How the Calculator Works

Converting binary numbers to decimal is easy.
For example, `let x = '101010'`

creates a new variable `x`

that contains the number as a string `101010`

.
JavaScript has a `parseInt()`

method that takes a `binary`

and `radix`

parameter, and returns a number.
Calling `parseInt(binary, radix)`

tells JavaScript to convert `binary`

to a number containing the decimal representation of `101010`

.
If `binary`

is not a string, it will be converted to one using the `toString()`

function.

```
let x = '101010';
parseInt(x, 2) // 42
```

The `toString()`

method also handles non-integers and negative numbers. For example:

```
x = -101010
parseInt(x, 2); // -42
x = 101010.101010;
parseInt(x, 2); // 42
```

## No Technology Method

How do you quickly convert `101010`

to `42`

without a computer?
It takes some practice to make it easy, but here's a few ways to convert a binary string to a decimal number.
One method discussed is doubling, described below:

- Take the binary string.
- Starting from the left, double your previous total and add the current digit.
- Double your current total and add the next leftmost digit.
- Repeat the previous step until you have gone through the entire string.

Below is a JavaScript function that implements the above procedure:

```
function toDecimal(v) {
let binary = '';
if(typeof v == 'string') {
binary = v.split();
} else {
binary = v.toString().split();
}
let decimal = 0;
for(let i = 0; i < binary.length; i++) {
decimal = (decimal * 2) + binary[i];
}
return decimal;
}
```

Here's what the procedure looks like with 101010:

- 101010
- 101010 => 0 + 1 == 1
- 1 * 2 + 0 == 2
- 2 * 2 + 1 == 5
- 5 * 2 + 0 == 10
- 10 * 2 + 1 == 21
- 21 * 2 + 0 == 42