# Binary Numbers

A number whose base is `2` is called a binary number. By base 2, it means we have only two digits to form all the numbers. They are `0` and `1`.

If we follow binary number system in daily life, this is how we count 10 apples:

``````1
10
11
100
101
110
111
1000
1001
1010``````

## Binary Number Literal

By default if we assign a number literal to a variable, it is considered as a decimal number(base10).

``````const a = 10;
console.log(a); // 10``````

In the above example, `a` contains decimal `10`. It is not the binary equivalent of `2`. In ES5, there is no way to represent a binary number. From ES6, to specify a binary number, we must prefix it with a leading zero followed by a lowercase or uppercase letter "B".

``````// ES6+

const a = 0b10;
console.log(a); // 2

const b = 0B10;
console.log(b); // 2``````

JavaScript engine treats a number as binary if it sees a `0b` or `0B` prefix.

If we use a number other than 0 and 1 after the prefix `0b` or `0B`, we get Syntax Error.

``const a = 0b123; // SyntaxError: Invalid or unexpected token``

## Binary to Decimal Conversion

Here we have a binary number that contains 4 digits:

``1010``

In binary number system, each digits are in 1's place, 2's place, 4's place and 8's place.

``````  8  4  2  1
--------------
1  0  1  0``````

In order to convert this binary number to decimal number, here is the formula:

``````8 x 1 + 4 x 0 + 2 x 1 + 1 x 0 =

8 + 0 + 2 + 0 =

10``````
Last updated on 5 Oct, 2022
Web Architect