大家好!
在C#中如何将一个hex文件的内容按字符串格式转换成对应的16进制?
比如一行hex文件的内容如下:
:10751E00A019D8A4120056EC2FF0000E0101A06F96
除开冒号,本身这些数据都是每两个字符组成一个16进制,如果上面这一行是个字符串,我如何将它转换为一个字节数组,就像:
[0x10,0x75,0x1E, 0x00......0x96]
谢谢大家了!
问题已解决,谢谢大家!
下面是解决方案,有需要的朋友可以参考下:
https://blog.csdn.net/weixin_36209467/article/details/103166153
该回答引用GPTᴼᴾᴱᴺᴬᴵ
你可以使用C#中的Convert类将字符串转换为16进制数。
·
首先,你需要去除冒号并将字符串拆分成两个字符的数组。然后,你可以使用Convert类的FromHexString方法将每个两个字符的数组元素转换为相应的16进制数。最后,将所有16进制数放入一个字节数组中。
·
下面是一个示例代码:
string hexString = "10751E00A019D8A4120056EC2FF0000E0101A06F96";
hexString = hexString.Substring(1); // 去除冒号
byte[] byteArray = new byte[hexString.Length / 2];
for (int i = 0; i < hexString.Length; i += 2)
{
string hexByte = hexString.Substring(i, 2);
byteArray[i / 2] = Convert.ToByte(hexByte, 16);
}
Console.WriteLine(BitConverter.ToString(byteArray));
输出:
10-75-1E-00-A0-19-D8-A4-12-00-56-EC-2F-F0-00-0E-01-01-A0-6F-96
该代码将hexString转换为一个字节数组,并使用BitConverter.ToString方法将其打印到控制台上。