C# 字符串转 16进制
时间: 2023-10-22 09:10:53 浏览: 70
在C#中,可以使用以下代码将字符串转换为16进制:
```csharp
string str = "hello world";
byte[] bytes = Encoding.Default.GetBytes(str);
string hex = BitConverter.ToString(bytes).Replace("-", "");
```
这里的 `Encoding.Default.GetBytes(str)` 将字符串转换为字节数组,`BitConverter.ToString(bytes)` 将字节数组转换为16进制字符串,`Replace("-", "")` 则是将其中的 "-" 去掉。
如果你需要将16进制字符串转换回原始字符串,可以使用以下代码:
```csharp
string hex = "68656C6C6F20776F726C64";
byte[] bytes = new byte[hex.Length / 2];
for (int i = 0; i < bytes.Length; i++)
{
bytes[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16);
}
string str = Encoding.Default.GetString(bytes);
```
这里的 `Convert.ToByte(hex.Substring(i * 2, 2), 16)` 将每两个字符转换为一个字节,最后使用 `Encoding.Default.GetString(bytes)` 将字节数组转换为字符串。