The BitConverter class in .NET Framework is provides functionality to convert base data types to an array of bytes, and an array of bytes to base data types.
The BitConverter class has a static overloaded GetBytes method that takes an integer, double, bool, short, long, or other base type value and convert that to a array of bytes. The BitConverter class also has other static methods to reverse this conversion. Some of these methods are ToDouble, ToChart, ToBoolean, ToInt16, and ToSingle.
The following code snippet converts different float, long, short, char, and boolean values to a byte array and vice-versa.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BitConverterSample
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Bool, Char, Long, Short, Single and byte arrays conversion sample.");
float floatValue = 12.098F;
Console.WriteLine("Float value: " + floatValue.ToString());
byte[] bytes = BitConverter.GetBytes(floatValue);
Console.WriteLine("Byte array value:");
Console.WriteLine(BitConverter.ToString(bytes));
// Create byte array to Float
float valueBack = BitConverter.ToSingle(bytes, 0);
Console.WriteLine(valueBack.ToString());
Console.WriteLine("--------------------------");
long longValue = 1234567891011121314;
Console.WriteLine("Long value: " + longValue.ToString());
bytes = BitConverter.GetBytes(longValue);
Console.WriteLine("Byte array value:");
Console.WriteLine(BitConverter.ToString(bytes));
// Create byte array to Long
long longValueBack = BitConverter.ToInt64(bytes, 0);
Console.WriteLine(longValueBack.ToString());
Console.WriteLine("--------------------------");
short shortValue = 12345;
Console.WriteLine("Short value: " + shortValue.ToString());
bytes = BitConverter.GetBytes(shortValue);
Console.WriteLine("Byte array value:");
Console.WriteLine(BitConverter.ToString(bytes));
// Create byte array to Short
short shortValueBack = BitConverter.ToInt16(bytes, 0);
Console.WriteLine(shortValueBack.ToString());
Console.WriteLine("--------------------------");
char charValue = 'c';
Console.WriteLine("Char value: " + charValue.ToString());
bytes = BitConverter.GetBytes(charValue);
Console.WriteLine("Byte array value:");
Console.WriteLine(BitConverter.ToString(bytes));
// Create byte array to Char
char charValueBack = BitConverter.ToChar(bytes, 0);
Console.WriteLine(charValueBack.ToString());
Console.WriteLine("--------------------------");
bool boolValue = true;
Console.WriteLine("Bool value: " + boolValue.ToString());
bytes = BitConverter.GetBytes(boolValue);
Console.WriteLine("Byte array value:");
Console.WriteLine(BitConverter.ToString(bytes));
// Create byte array to Bool
bool boolValueBack = BitConverter.ToBoolean(bytes, 0);
Console.WriteLine(boolValueBack.ToString());
Console.WriteLine("--------------------------");
Console.ReadLine();
}
}