Number System: Binary, Decimal, Octal, Hexadecimal
by Zvonimir Tomesic, CEO
Series: From Binary to Processors: A Deep Dive into Digital Logic

Number Systems: Binary, Decimal, Octal, Hexadecimal

Boolean Algebra: The Foundation Of Digital Logic (coming soon)

Logic Gates: The Building Blocks Of Digital Logic (coming soon)

Error Correction In Digital Systems: Understanding Hamming Code And Beyond (coming soon)

Digital Arithmetic Circuits: From Basic Adders To Complex Chips (coming soon)

The Anatomy Of Processors: ALU, Clock, And Core Components (coming soon)
Overview
Understanding various number systems like binary, decimal, octal, and hexadecimal is crucial in computing. These systems each have unique advantages for data processing, representation, and utility in computer environments.
Grasping the Hexadecimal System
The Problem with Binary
Binary, though fundamental to computer operations, is verbose and lacks readability, making it challenging to manage and errorprone for humans.
Why Hexadecimal?
Hexadecimal (base16) provides a more userfriendly way to represent binary data. Its advantages include:
 Familiarity: Hexadecimal digits partially resemble our conventional decimal (base10) system.
 Density: Hexadecimal is denser than binary. For instance, the number 255 can be represented as FF in hexadecimal but requires 8 bits (11111111) in binary.
Hexadecimal is particularly useful in contexts where binary digits need to be concise yet readable. For instance, in memory addressing, color coding in web design (e.g., #FF5733), and debugging computer programs, hexadecimal provides a compact, comprehensible representation.
Example:
e7
in hexadecimal translates to 1110 0111
in binary, equivalent to 231
in decimal.
BinaryHexadecimal Compatibility
This compatibility simplifies conversions and is one key reason hexadecimal is preferred in certain applications over decimal. Each hexadecimal digit directly translates to a fourbit binary sequence.
Hexadecimal to Binary and Decimal Conversion Table
Hexadecimal  Binary  Decimal value 

0  0000  0 
1  0001  1 
2  0010  2 
3  0011  3 
4  0100  4 
5  0101  5 
6  0110  6 
7  0111  7 
8  1000  8 
9  1001  9 
A  1010  10 
B  1011  11 
C  1100  12 
D  1101  13 
E  1110  14 
F  1111  15 
Converting Hexadecimal to Decimal
To convert hexadecimal to decimal, multiply each digit by 16 raised to the digit's position and sum them up.
Example:
Converting e7
in hexadecimal to decimal:
e7
=>
14 * 16 ^ 1 + 7 * 16 ^ 0
= 224 + 7
= 231
Exploring the Octal System
The Octal Basics
The octal system (base8) groups binary numbers into sets of three bits, offering another compact representation.
Octal is especially relevant in the world of computing for its simplicity in converting to and from binary. Historically, it was used in older computer systems and remains useful in modern programming for permissions in Unix and Linux file systems (e.g., chmod 777 for full permissions), and in representing digital displays in some electronic devices.
Example:
Compare the first 15 numbers in decimal, binary, and octal:
Decimal  Binary  Octal 

0  0000  0 
1  0001  1 
2  0010  2 
3  0011  3 
4  0100  4 
5  0101  5 
6  0110  6 
7  0111  7 
8  1000  10 
9  1001  11 
10  1010  12 
11  1011  13 
12  1100  14 
13  1101  15 
14  1110  16 
15  1111  17 
Octal to Binary Conversion
To convert the decimal number 15 to octal, we group its binary form (1111) into 001
and 111
, resulting in 17
in base 8.
First Group
Divide  Quotation  Reminder 

2/2  1  0 
     
1/2  0  1 
If we read Reminder from bottom up, we can see 10
as a binary representation of number 2, because we are talking about octal we know that octal numbers are created from groups of three bits, we will add zero to the end. So we end up with 010
.
Second group
Divide  Quotation  Reminder 

4/2  2  0 
     
2/2  1  0 
     
1/2  0  1 
If we read Reminder from bottom up, we can see 100
as a binary representation of number 4.
Then we just concatenate two binary numbers starting from the first group to get the result 010100
.
Binary Conversions
Binary to Decimal
For converting binary to decimal, remember that each bit represents a power of two, with the least significant bit (LSB) being (2^0).
Example:
To convert 010100
from binary to decimal:
010100
= 0 * 2^5 + 1 * 2^4 + 0 * 2^3 + 1 * 2^2 + 0 * 2^1 + 0 * 2^0
= 0 + 16 + 0 + 4 + 0 + 0
= 20
Binary  Value  Decimal 

0  1  0 
0  2  0 
1  4  4 
0  8  0 
1  16  16 
0  32  0 
Total  20 
Binary to Octal
Convert binary to octal by dividing the binary number into groups of three, starting from the right.
Example:
To convert 010100
(20 in decimal) to octal:
010100 => 010  100
= 2 (octal)  4 (octal)
= 24 (base 8)
First group
binary  value  decimal 

0  1  0 
1  2  2 
0  4  0 
total  2 
Second group
binary  value  decimal 

0  1  0 
0  2  0 
1  4  4 
total  4 
Then we just concat total starting from first group 24
Binary to Hexadecimal
For binary to hexadecimal, divide the binary number into groups of four.
Example:
010100
(20 in decimal) converts to 14
in hexadecimal.
First group
binary  value  decimal 

1  1  1 
0  2  0 
0  4  0 
0  4  0 
total  1 
Second group
binary  value  decimal 

0  1  0 
0  2  0 
1  4  4 
0  8  0 
total  4 
Then we just concat total starting from first group 14
Octal Conversions
Octal to Binary
To convert from octal to binary, convert each octal digit into a threebit binary number.
Example:
Octal 24
converts to binary 010100
.
First Group
Divide  Quotation  Reminder 

2/2  1  0 
     
1/2  0  1 
If we read Reminder from bottom up, we can see 10
as a binary representation of number 2, because we are talking about octal we know that octal numbers are created from groups of three bits, we will add zero to the end. So we end up with 010
.
Second group
Divide  Quotation  Reminder 

4/2  2  0 
     
2/2  1  0 
     
1/2  0  1 
If we read Reminder from bottom up, we can see 100
as a binary representation of number 4.
Then we just concatenate two binary numbers starting from the first group to get the result 010100
.
Octal to Decimal
To convert from octal to decimal, multiply each digit by 8 raised to the power of its position and sum the results.
Example:
24 (octal)
= 4 * 8^0 + 2 * 8^1
= 4 + 16
= 20 (decimal)
Octal to Hexadecimal
For converting from octal to hexadecimal, first convert to binary, then group into fours and convert to hexadecimal.
Example:
Octal 24
becomes 14
in hexadecimal.
20 (Base 10) => 24(base 8) => 14 (Base 16)
The first step is to convert the number to binary (check section Octal to Binary) and then convert binary to hexadecimal
After converting number to binary, we can proceed to hexadecimal conversion.
010100 => 0001  0100
0001
=> 1*2^0 + 0*2^1 + 0*2^2 + 0*2^3
= 1 + 0 + 0 + 0
= 1
0100
=> 0*2^0 + 0*2^1 + 1*2^2 + 0*2^3
= 0 + 0 + 4 + 0
= 4
00010100 (base 2) = 14 (base 16)
Conclusion
Understanding these number systems is fundamental in computing and digital electronics. Each system has unique features suited for specific applications, enhancing the efficiency of data representation and processing. Through mastering these conversions, one gains deeper insights into how data is managed within computer systems.