BitConverter 将byte转换为string
时间: 2024-06-11 17:08:16 浏览: 11
BitConverter类主要用于进行基本数据类型和字节数组之间的转换,它提供了将byte数组转换为string类型的方法,如下所示:
```csharp
byte[] bytes = new byte[] { 72, 101, 108, 108, 111 }; // Hello对应的ASCII码
string str = System.Text.Encoding.ASCII.GetString(bytes);
Console.WriteLine(str); // 输出:Hello
```
此外,还可以使用其他编码方式进行转换,例如:
```csharp
byte[] bytes = new byte[] { 230, 136, 145, 229, 191, 171 }; // 你好对应的UTF-8编码
string str = System.Text.Encoding.UTF8.GetString(bytes);
Console.WriteLine(str); // 输出:你好
```
相关问题
C# Byte [] 转换成string
你可以使用 `Encoding` 类的 `GetString` 方法来将 `byte[]` 转换成字符串。下面是一个示例代码:
```csharp
byte[] bytes = { 72, 101, 108, 108, 111 }; // 示例 byte 数组
string str = Encoding.Default.GetString(bytes);
Console.WriteLine(str); // 输出 "Hello"
```
在上述示例中,我们使用了默认的编码方式 (`Encoding.Default`) 来将 `byte[]` 转换成字符串。你也可以根据需要选择其他编码方式,例如 `Encoding.UTF8`。
另外,如果你想将 `byte[]` 转换成十六进制字符串,可以使用 `BitConverter` 类的 `ToString` 方法。下面是一个示例代码:
```csharp
byte[] bytes = { 72, 101, 108, 108, 111 }; // 示例 byte 数组
string hexString = BitConverter.ToString(bytes).Replace("-", "");
Console.WriteLine(hexString); // 输出 "48656C6C6F"
```
在上述示例中,我们使用 `BitConverter.ToString` 将 `byte[]` 转换成十六进制字符串,并使用 `Replace` 方法去除字符串中的连字符。
c#将ushort转换为16进制byte
在 C# 中,可以使用 BitConverter.GetBytes 方法将 ushort 类型转换为 byte 数组,然后再将 byte 数组转换为 16 进制字符串。具体代码如下:
```csharp
ushort num = 12345;
byte[] bytes = BitConverter.GetBytes(num); // 将 ushort 转换为 byte 数组
string hex = BitConverter.ToString(bytes).Replace("-", ""); // 将 byte 数组转换为 16 进制字符串
```
其中,`BitConverter.GetBytes` 方法将 ushort 类型转换为 byte 数组,`BitConverter.ToString` 方法将 byte 数组转换为 16 进制字符串,`Replace` 方法用于去除字符串中的分隔符 `-`。
如果想要将 ushort 直接转换为 16 进制 byte 数组,可以使用 BitConverter.GetBytes 方法配合 LINQ 的 Select 方法,如下所示:
```csharp
ushort num = 12345;
byte[] bytes = BitConverter.GetBytes(num).Reverse().ToArray(); // 将 ushort 转换为 16 进制 byte 数组
string hex = BitConverter.ToString(bytes).Replace("-", ""); // 将 byte 数组转换为 16 进制字符串
```
其中,`Reverse` 方法用于反转 byte 数组的顺序,因为 BitConverter.GetBytes 方法返回的 byte 数组顺序与我们期望的顺序是相反的。