C# – 将hex值的字符串转换为hex

这可能听起来很奇怪,但我的问题是我有一个文本文件中的hex值的文本字符串,如下所示:

"0x0f, 0x40, 0xff, ...." 

我已将它们存储在由分隔符拆分的数组中,但我现在需要做的是使用hex的字节数组:

 stringArray[0] = "0x0f"; byteArray[0] = 0x0f; 

我该怎么做(用户可以加载文本文件,所以我不知道值是什么),我可以使用某种算法吗?

你只需要解析每个字符串。 因为每个只有一个值,所以你可以这样做:

 byte b; if (byte.TryParse(s, NumberStyles.HexNumber, CultureInfo.InvariantCulture.NumberFormat, out b)) { // b contains the value. } 

其中s是要解析的字符串,b是结果值。

如果您的字符串格式正确,则可以使用此代码创建数组(如果输入格式错误,将抛出exception):

 var text = "0x0f, 0x40, 0xff"; var bytes = text .Split(new[] { ", " }, StringSplitOptions.None) .Select(s => (Byte) Int32.Parse(s.Substring(2), AllowHexSpecifier)); 

非奇数hex字符串是正确的。 检查您的来源获取此字符串。 这是因为字符串的限制没有字符串的截断。 如果String是image存储在数据库中,则使用不使用任何工具的程序检索它

我在使用.net和MSSQL以及使用webservice和Java Client时遇到了同样的问题