Sai A Sai A
Updated date May 02, 2023
In this blog, we will learn how to convert binary to strings in C# using various methods, including Convert.ToInt32 and Convert.ToString, BinaryReader and Encoding.ASCII.GetString, and BitConverter and Encoding.UTF8.GetString.

Introduction:

Binary is a numeral system that uses only two symbols, typically 0 and 1, to represent numbers. In computer programming, binary is often used to represent data such as images, audio, and text. However, binary is not easy to read for humans. Therefore, it is often necessary to convert binary data to a readable form. In this blog post, we will focus on converting binary to strings in C#. We will discuss various methods to convert binary to strings in C# and provide a program with output for each method.

Method 1: Using Convert.ToInt32 and Convert.ToString

The first method to convert binary to a string in C# is by using the Convert.ToInt32 and Convert.ToString methods. The Convert.ToInt32 method is used to convert a string representation of a number to its 32-bit signed integer equivalent. The Convert.ToString method is used to convert a number to its string representation.

Here is an example program that demonstrates how to convert binary to a string using this method:

string binary = "01101000 01100101 01101100 01101100 01101111";
string[] binaryArray = binary.Split(' ');
string result = "";

foreach (string bin in binaryArray)
{
    int num = Convert.ToInt32(bin, 2);
    char character = Convert.ToChar(num);
    result += character;
}

Console.WriteLine(result);

Output:

hello

In this program, we first define the binary string "01101000 01100101 01101100 01101100 01101111". Then, we split the binary string into an array of strings using the space character as the delimiter. Next, we define an empty string variable called "result". We then loop through each binary string in the array and convert it to an integer using the Convert.ToInt32 method with a base of 2 (binary). We then convert the integer to its corresponding character using the Convert.ToChar method. Finally, we append the character to the "result" string variable. Once we have looped through all the binary strings in the array, we print the final "result" string variable, which should contain the string "hello".

Method 2: Using BinaryReader and Encoding.ASCII.GetString

The second method to convert binary to a string in C# is by using the BinaryReader class and the Encoding.ASCII.GetString method. The BinaryReader class is used to read primitive data types as binary values from a stream. The Encoding.ASCII.GetString method is used to convert an array of bytes to its string representation.

Here is an example program that demonstrates how to convert binary to a string using this method:

byte[] bytes = { 0b01101000, 0b01100101, 0b01101100, 0b01101100, 0b01101111 };
string result = "";

using (MemoryStream stream = new MemoryStream(bytes))
{
    using (BinaryReader reader = new BinaryReader(stream))
    {
        byte[] buffer = reader.ReadBytes(bytes.Length);
        result = Encoding.ASCII.GetString(buffer);
    }
}

Console.WriteLine(result);

Output:

hello

In this program, we first define an array of bytes called "bytes". We use the binary literal prefix 0b to indicate that each byte is a binary value. Next, we define an empty string variable called "result". We then create a MemoryStream object using the "bytes" array and use it to create a BinaryReader object. We then use the BinaryReader object to read the bytes from the stream and store them in a buffer. Finally, we convert the buffer to its string representation using the Encoding.ASCII.GetString method and assign the result to the "result" string variable. Once we have converted the buffer to a string, we print the final "result" string variable, which should contain the string "hello".

Method 3: Using BitConverter and Encoding.UTF8.GetString 

The third method to convert binary to a string in C# is by using the BitConverter class and the Encoding.UTF8.GetString method. The BitConverter class is used to convert base data types to an array of bytes and vice versa. The Encoding.UTF8.GetString method is used to convert an array of bytes to its string representation using the UTF-8 encoding.

Here is an example program that demonstrates how to convert binary to a string using this method:

byte[] bytes = { 0b01101000, 0b01100101, 0b01101100, 0b01101100, 0b01101111 };
string result = Encoding.UTF8.GetString(bytes);

Console.WriteLine(result);

Output:

hello

In this program, we first define an array of bytes called "bytes". We use the binary literal prefix 0b to indicate that each byte is a binary value. We then use the Encoding.UTF8.GetString method to convert the "bytes" array to its string representation using the UTF-8 encoding. Finally, we print the final "result" string variable, which should contain the string "hello".

Conclusion:

In this blog post, we discussed various methods to convert binary to strings in C#. We provided a program with output for each method. The first method involved using the Convert.ToInt32 and Convert.ToString methods. The second method involved using the BinaryReader class and the Encoding.ASCII.GetString method. The third method involved using the BitConverter class and the Encoding.UTF8.GetString method. Each method has its advantages and disadvantages depending on the specific use case. By understanding these methods, developers can choose the most appropriate one for their specific scenario.

Comments (0)

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