📜  C#| BitConverter类(1)

📅  最后修改于: 2023-12-03 15:30:16.775000             🧑  作者: Mango

C# | BitConverter类

C#的BitConverter类提供了将基本数据类型转换为字节数组和将字节数组转换回基本数据类型的功能。BitConverter类位于System命名空间中,并且是静态类,所以无需创建实例即可使用它的方法。

方法

BitConverter类包含以下几个主要的方法。

ToBoolean

将指定的字节数组中的前一个字节转换为一个布尔值。

byte[] byteArray = { 0x01, 0x00, 0x00, 0x00 };
bool booleanValue = BitConverter.ToBoolean(byteArray, 0);
ToChar

将指定的字节数组中的前两个字节转换为一个字符。

byte[] byteArray = { 0x41, 0x00 };
char charValue = BitConverter.ToChar(byteArray, 0);
ToInt16

将指定的字节数组中的前两个字节转换为一个16位带符号整数。

byte[] byteArray = { 0xFF, 0x7F };
short shortValue = BitConverter.ToInt16(byteArray, 0);
ToInt32

将指定的字节数组中的前四个字节转换为一个32位带符号整数。

byte[] byteArray = { 0xFF, 0xFE, 0xFF, 0xFF };
int intValue = BitConverter.ToInt32(byteArray, 0);
ToInt64

将指定的字节数组中的前八个字节转换为一个64位带符号整数。

byte[] byteArray = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
long longValue = BitConverter.ToInt64(byteArray, 0);
ToSingle

将指定的字节数组中的前四个字节转换为单精度浮点数。

byte[] byteArray = { 0xC3, 0xF5, 0x48, 0x40 };
float floatValue = BitConverter.ToSingle(byteArray, 0);
ToDouble

将指定的字节数组中的前八个字节转换为双精度浮点数。

byte[] byteArray = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F };
double doubleValue = BitConverter.ToDouble(byteArray, 0);
ToString

将指定字节数组的值按十六进制格式转换为一个字符串。

byte[] byteArray = { 0x41, 0x42, 0x43, 0x44 };
string hexString = BitConverter.ToString(byteArray, 0);
示例

下面是一个完整的示例,演示了如何使用BitConverter类将数据类型转换为字节数组。

using System;

class Example
{
    static void Main()
    {
        short shortValue = -32768;
        int intValue = -2147483647;
        long longValue = -9223372036854775808;
        float floatValue = 3.1415927f;
        double doubleValue = 2.7182818284590452;
        char[] charArray = { 'A', 'B', 'C' };

        byte[] shortBytes = BitConverter.GetBytes(shortValue);
        byte[] intBytes = BitConverter.GetBytes(intValue);
        byte[] longBytes = BitConverter.GetBytes(longValue);
        byte[] floatBytes = BitConverter.GetBytes(floatValue);
        byte[] doubleBytes = BitConverter.GetBytes(doubleValue);
        byte[] charBytes = BitConverter.GetBytes(charArray[0]);

        Console.WriteLine(BitConverter.ToBoolean(new byte[] { 0x01 }, 0));

        Console.WriteLine(BitConverter.ToChar(charBytes, 0));

        Console.WriteLine(BitConverter.ToInt16(shortBytes, 0));

        Console.WriteLine(BitConverter.ToInt32(intBytes, 0));

        Console.WriteLine(BitConverter.ToInt64(longBytes, 0));

        Console.WriteLine(BitConverter.ToSingle(floatBytes, 0));

        Console.WriteLine(BitConverter.ToDouble(doubleBytes, 0));

        Console.WriteLine(BitConverter.ToString(charBytes, 0));

        Console.ReadLine();
    }
}
结论

使用C#的BitConverter类,我们可以方便地将基本数据类型转换为字节数组以进行网络通信、文件传输等。此外,我们还可以使用BitConverter类将字节数组转换回基本数据类型。这种转换在实际开发中很常见。