# Number systems and their representation

Here, we are going to learn about the **computer number systems and their representations**.

Submitted by Saurabh Gupta, on October 12, 2019

Any number system has a set of symbols known as Digits with some rules performing arithmetic operations. A collection of these makes a number has two parts. They are **integer portion** and **fraction portion**. These portions are separated by a point known as **radix**.

If a number has **radix** as **'b'**, then the number of numbers present in that number system will be **'b'** which will range from **0 to b-1**.

Where,

**N**= a number**b**= radix or base to number system**n**= number of digits in integer portion**m**= number of digits in the fractional portion**d**= Most Significant Digit (MSD)_{n-1}**d**= Least Significant Digit (LSD)_{-m}

The commonly used number systems are:

- Binary Number System
- Octal Number System
- Decimal Number System
- Hexadecimal Number System

### 1) Binary Number System

The **binary number system** has its base as **2**. Since **b=2**, it consists of two digits which range from **0 to 2-1 =1**. (As discussed above, the range is from **0 to b-1**).

Therefore, the **binary number system** consists of digits **0** and **1** only.

**Ex: (1101)2, (110101)2, (0101)2, (101.01)2, etc.**

In **Binary Number System**, the portion to the left of binary point (integer part) have their weights as **2 ^{0}**,

**2**,

^{1}**2**and so on from right to left. The portion on the right-hand side of the binary point (fractional part) have weights as

^{2}**2**,

^{-1}**2**and so on from left to right.

^{-2}Above given binary number **(101.01) _{2}** can be represented as:

**(101.01) _{2} = (1*2^{2}) + (0*2^{1}) + (1*2^{0}) + (0*2^{-1}) + (1*2^{-2})**

After simplifying the terms in the RHS of the equation, we will get a decimal number equivalent to binary number on the LHS which is **(5.25) _{10}**.

### 2) Octal Number System

The **octal number system** has its base as **8**. Since **b=8**, it consists of eight digits which range from **0 to 8-1 =7**. (As discussed above, the range is from **0 to b-1**).

It consists of digits ranging from **0 to 7** i.e., **0, 1, 2, 3, 4, 5, 6 and 7**.

**Ex: (73)8, (420)8, (125.13)8, etc.**

In **Octal Number System** the positional values/weights to the left of octal point in integer part are as **8 ^{0}**,

**8**,

^{1}**8**and so on from right to left whereas the weights in the right-hand side in fractional part are as

^{2}**8**,

^{-1}**8**and so on from left to right.

^{-2}Above given octal number **(125.13) _{8}** can be represented as:

**(125.13) _{8} = (1*8^{2}) + (2*8^{1}) + (5*8^{0}) + (1*8^{-1}) + (3*8^{-2})**

After simplifying the terms in the RHS of the equation, we will get a decimal number equivalent to octal number on the LHS which is **(85.140625) _{10}**.

### Decimal Number System

The **Decimal Number System** has its **base** as **10**. Since **b=10**, it consists of 10 digits which range from **0 to 10-1 = 9**. (As discussed above, the range is from **0 to b-1**).

It consists of digits ranging from **0 to 9** i.e., **0, 1, 2, 3, 4, 5, 6, 7, 8 and 9**.

**Ex: (101)10, (12)10, (999)10, (540.25)10, etc.**

In the **Decimal Number System** the positional values/weights to the left of the decimal point in integer part are as **10 ^{0}**,

**10**,

^{1}**10**and so on from right to left whereas the weights in the right-hand side in fractional part are as

^{2}**10**,

^{-1}**10**and so on from left to right.

^{-2}Above given decimal number **(540.25) _{10}** can be represented as:

**(540.25) _{10} = (5*10^{2}) + (4*10^{1}) + (0*10^{0}) + (2*10^{-1}) + (5*10^{-2}) **

After simplifying the terms in the RHS of the equation, we will get a decimal number equivalent to the decimal number on the LHS.

### 4) Hexadecimal Number System

The **Hexadecimal Number System** has its base as **16**. Since **b=16**, it consists of **16** digits which range from **0 to 16-1 = 15**. (As discussed above, the range is from **0 to b-1**).

It consists of both digits and alphabets where digits range from **0 to 9** i.e., **0, 1, 2, 3, 4, 5, 6, 7, 8, 9** and alphabets range from **A to F** where (**A=10)**, **(B=11)**, (**C=12**), (**D=13**), (**E=14**) and (**F=15**).

**Ex: (123)16, (459)16, (12A3F.12)16, etc.**

In the **Hexadecimal Number System** the positional values/weights to the left of the decimal point in integer part are as **16 ^{0}**,

**16**,

^{1}**16**and so on from right to left whereas the weights in the right-hand side in fractional part are as

^{2}**16**,

^{-1}**16**and so on from left to right.

^{-2}Above given Hexadecimal number **(12A.13) _{16}** can be represented as:

**(12A.13) _{16} = (1*16^{2}) + (2*16^{1}) + (10*16^{0}) + (1*16^{-1}) + (3*16^{-2})**

After simplifying the terms in the RHS of the equation, we will get a decimal number equivalent to decimal number on the LHS which is **(298. 06640625) _{10}**.

TOP Interview Coding Problems/Challenges

- Run-length encoding (find/print frequency of letters in a string)
- Sort an array of 0's, 1's and 2's in linear time complexity
- Checking Anagrams (check whether two string is anagrams or not)
- Relative sorting algorithm
- Finding subarray with given sum
- Find the level in a binary tree with given sum K
- Check whether a Binary Tree is BST (Binary Search Tree) or not
- 1[0]1 Pattern Count
- Capitalize first and last letter of each word in a line
- Print vertical sum of a binary tree
- Print Boundary Sum of a Binary Tree
- Reverse a single linked list
- Greedy Strategy to solve major algorithm problems
- Job sequencing problem
- Root to leaf Path Sum
- Exit Point in a Matrix
- Find length of loop in a linked list
- Toppers of Class
- Print All Nodes that don't have Sibling
- Transform to Sum Tree
- Shortest Source to Destination Path

Comments and Discussions