C# - 转换十六进制值的字符串为十六进制
这听起来有点奇怪,但我的问题是,我有十六进制值的文本字符串从一个文本文件,像这样:C# - 转换十六进制值的字符串为十六进制
"0x0f, 0x40, 0xff, ...."
我已经将它们存储在由分隔符分成数组,但我现在需要做的是有一个字节数组什么大公是十六进制:
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是所得到的值。
谢谢。当我获得足够的声望点时,我会投票答复你的答案。 – user646265 2011-04-13 14:03:49
我会补充说,悲伤的回应是错误的。 'byte.TryParse'不支持0x格式。阅读它[这里](http://msdn.microsoft.com/en-us/library/system.globalization.numberstyles.aspx)'HexNumber表示使用AllowLeadingWhite,AllowTrailingWhite和AllowHexSpecifier样式'和'AllowHexSpecifier字符串使用这种风格的解析不能以“0x”或“&h”'作为前缀 – xanatos 2012-03-16 08:57:52
如果字符串是正确的格式,你可以使用此代码(会抛出异常如果输入格式错误)创建数组:
奇非var text = "0x0f, 0x40, 0xff";
var bytes = text
.Split(new[] { ", " }, StringSplitOptions.None)
.Select(s => (Byte) Int32.Parse(s.Substring(2), AllowHexSpecifier));
十六进制字符串是正确的。 检查你的源代码得到这个字符串。 这是因为限制字符数而导致字符串截断。 如果字符串是图像存储在数据库中,然后使用程序不使用任何工具
我与.NET和MSSQL,通过使用互联网服务和Java客户端
这个问题本身是有效的在同样的问题检索我的想法。我想,收官不会让他接受更多的答案。 user646265:请接受更多帮助你的答案。这会让更多人想要帮助你。 – OregonGhost 2011-04-13 10:02:34
是的,我会这样做,但我只是得到了超过15个你需要接受答案的声望。我将来会这样做,现在我在16分。 – user646265 2011-04-13 12:15:47