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();
}
}