c# 16进制字符串 转数组
时间: 2023-11-09 11:03:32 浏览: 45
可以使用以下代码将16进制字符串转换为字节数组:
```csharp
string hexString = "FFAABBCC";
byte[] byteArray = Enumerable.Range(0, hexString.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hexString.Substring(x, 2), 16))
.ToArray();
```
这里的 `hexString` 是要转换的16进制字符串,`byteArray` 是转换后的字节数组。
解释一下代码的实现过程:
1. 使用 `Enumerable.Range` 生成一个从 0 到 `hexString` 长度的整数序列。
2. 使用 `Where` 方法筛选出序列中所有下标为偶数的元素。
3. 使用 `Select` 方法将每个下标对应的两个字符转换为一个字节,并将结果存储在一个新的序列中。
4. 使用 `ToArray` 方法将序列转换为字节数组。
相关问题
c#16进制字符串转字符串
您可以使用以下代码将C#中的十六进制字符串转换为字符串:
```csharp
public static string HexToString(string hex)
{
StringBuilder*** = new StringBuilder();
for (int i = 0; i < hex.Length; i += 2)
{
string hexByte = hex.Substring(i, 2);
byte byteValue = Convert.ToByte(hexByte, 16);
***.Append((char)byteValue);
}
return***.ToString();
}
```
使用示例:
```csharp
string hexString = "48656C6C6F20776F726C64";
string result = HexToString(hexString);
Console.WriteLine(result); // 输出:"Hello world"
```
这个方法将十六进制字符串按每两个字符一组进行分割,然后将每个组转换为对应的字节,最后将字节转换为字符并拼接起来,形成最终的字符串。
c#16进制字符串转ASCII字符串
以下是C#中将16进制字符串转换为ASCII字符串的方法:
```csharp
public static string HexStringToASCII(string hexstring)
{
byte[] bt = HexStringToBinary(hexstring);
string lin = "";
for (int i = 0; i < bt.Length; i++)
{
lin = lin + bt[i] + " ";
}
return lin;
}
public static byte[] HexStringToBinary(string hexstring)
{
// 将16进制字符串转换为字节数组
string[] hexValuesSplit = hexstring.Split(' ');
byte[] bytes = new byte[hexValuesSplit.Length];
for (int i = 0; i < hexValuesSplit.Length; i++)
{
bytes[i] = Convert.ToByte(hexValuesSplit[i], 16);
}
return bytes;
}
```
使用示例:
```csharp
string hexString = "61 62 63"; // 16进制字符串
string asciiString = HexStringToASCII(hexString);
Console.WriteLine(asciiString); // 输出:a b c
```