C#在byte[]数组中放入16进制数
时间: 2023-11-19 21:05:57 浏览: 86
可以使用 `Convert` 类的 `ToByte` 方法将 16 进制数转换为字节,然后将其放入 `byte[]` 数组中。具体步骤如下:
1. 定义一个字符串变量,存储 16 进制数。
```csharp
string hexString = "1A2B3C4D";
```
2. 将字符串转换为字节数组。
```csharp
byte[] hexBytes = new byte[hexString.Length / 2];
for (int i = 0; i < hexBytes.Length; i++)
{
hexBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
}
```
在上面的代码中,我们首先创建了一个大小为 `hexString.Length/2` 的字节数组,因为每两个字符组成一个 16 进制数,所以需要将字符串长度除以 2。然后,我们使用 `Substring` 方法从字符串中获取每个 16 进制数,并使用 `Convert.ToByte` 方法将其转换为字节。
3. 将字节数组放入 `byte[]` 数组中。
```csharp
byte[] byteArray = new byte[4];
Array.Copy(hexBytes, 0, byteArray, 0, hexBytes.Length);
```
在上面的代码中,我们创建了一个大小为 4 的 `byte[]` 数组,并使用 `Array.Copy` 方法将 `hexBytes` 数组的内容复制到新数组中。
完整代码如下:
```csharp
string hexString = "1A2B3C4D";
byte[] hexBytes = new byte[hexString.Length / 2];
for (int i = 0; i < hexBytes.Length; i++)
{
hexBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
}
byte[] byteArray = new byte[4];
Array.Copy(hexBytes, 0, byteArray, 0, hexBytes.Length);
```
阅读全文