Sai A Sai A
Updated date Jul 26, 2023
In this blog, we embark on a journey to understand binary and decimal number systems and explore the process of converting binary numbers to decimals using C#. The blog presents multiple conversion methods, including the built-in function, manual iteration, and bitwise operations.

Introduction:

The two fundamental number systems are binary (base-2) and decimal (base-10). While decimal numbers are familiar to most of us, binary numbers might seem puzzling at first. In this blog, we will embark on a journey to explore binary and decimal number systems, focusing on the process of converting binary numbers to decimals using C#. We will present multiple methods for conversion, along with their respective advantages and use cases.

Binary and Decimal Representation:

Before we dive into the conversion methods, let's briefly understand how binary and decimal numbers are represented. Decimal numbers consist of digits ranging from 0 to 9, while binary numbers use only two digits: 0 and 1. Each digit's position in a number represents a power of the base, with the rightmost digit being 0, the next one 1, then 2, and so on.

Method 1: Using Built-in Function

C# provides a built-in function, Convert.ToInt32(), to convert binary strings to decimals effortlessly. Let's see how this method works with an example:

using System;

public class BinaryToDecimalConverter
{
    public static int ConvertBinaryToDecimalMethod1(string binaryString)
    {
        int decimalValue = Convert.ToInt32(binaryString, 2);
        return decimalValue;
    }
}

Let's convert the binary number "10101" to decimal using Method 1.

string binaryNumber = "10101";
int decimalValue = BinaryToDecimalConverter.ConvertBinaryToDecimalMethod1(binaryNumber);
Console.WriteLine($"Binary: {binaryNumber}, Decimal: {decimalValue}");

Output:

Binary: 10101, Decimal: 21

Method 2: Manual Iteration

To gain a deeper understanding of the conversion process, let's explore a manual iterative approach. We will traverse the binary string from right to left, convert each bit to its decimal equivalent, and sum them up.

public class BinaryToDecimalConverter
{
    public static int ConvertBinaryToDecimalMethod2(string binaryString)
    {
        int decimalValue = 0;
        int power = 0;

        for (int i = binaryString.Length - 1; i >= 0; i--)
        {
            int digit = binaryString[i] - '0'; // Convert char to int
            decimalValue += digit * (int)Math.Pow(2, power);
            power++;
        }

        return decimalValue;
    }
}

Let's convert the binary number "110110" to decimal using Method 2.

string binaryNumber = "110110";
int decimalValue = BinaryToDecimalConverter.ConvertBinaryToDecimalMethod2(binaryNumber);
Console.WriteLine($"Binary: {binaryNumber}, Decimal: {decimalValue}");

Output:

Binary: 110110, Decimal: 54

Method 3: Using Bitwise Operations (Optional)

Another efficient way to convert binary to decimal is by using bitwise operations. This method is particularly useful in performance-critical scenarios.

public class BinaryToDecimalConverter
{
    public static int ConvertBinaryToDecimalMethod3(string binaryString)
    {
        int decimalValue = 0;

        for (int i = 0; i < binaryString.Length; i++)
        {
            int digit = binaryString[i] - '0'; // Convert char to int
            decimalValue = (decimalValue << 1) | digit;
        }

        return decimalValue;
    }
}

Let's convert the binary number "10001" to decimal using Method 3.

string binaryNumber = "10001";
int decimalValue = BinaryToDecimalConverter.ConvertBinaryToDecimalMethod3(binaryNumber);
Console.WriteLine($"Binary: {binaryNumber}, Decimal: {decimalValue}");

Output:

Binary: 10001, Decimal: 17

Conclusion:

In this blog, we've explored the fascinating world of binary and decimal number systems. We learned multiple methods to convert binary numbers to decimals using C#. The built-in function provides a straightforward solution, while the manual iteration and bitwise operations offer deeper insights and better performance in some cases.

Comments (0)

There are no comments. Be the first to comment!!!