C#16进制转字符串
时间: 2024-09-10 16:30:03 浏览: 60
在C#中,将16进制字符串转换为普通字符串通常需要先将16进制字符串转换为字节数组,然后再将这个字节数组转换为字符串。这个过程可以通过使用`System`命名空间下的类来完成。下面是一个简单的示例代码:
```csharp
using System;
using System.Text;
public class HexToStringConverter
{
public static string Convert(string hexString)
{
// 检查输入是否是偶数长度,因为每两个字符表示一个字节
if (hexString.Length % 2 != 0)
{
throw new ArgumentException("Invalid hex string length.");
}
// 创建一个字节数组来存储转换结果
byte[] bytes = new byte[hexString.Length / 2];
// 从每两个字符中读取一个字节
for (int i = 0; i < hexString.Length; i += 2)
{
// 截取两个字符
string hex = hexString.Substring(i, 2);
// 将16进制字符串转换为十进制数,即一个字节
bytes[i / 2] = Convert.ToByte(hex, 16);
}
// 将字节数组转换为字符串
return Encoding.UTF8.GetString(bytes);
}
}
```
使用上述代码时,可以调用`Convert`方法并传入16进制字符串,它会返回对应的字符串。
```csharp
string hex = "48656C6C6F"; // 这是"Hello"的16进制表示
string result = HexToStringConverter.Convert(hex);
Console.WriteLine(result); // 输出:Hello
```
阅读全文