C# - 将十六进制值字符串转换为十六进制

发布于 2024-10-31 19:57:13 字数 283 浏览 0 评论 0原文

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

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

我已将它们存储在由分隔符分隔的数组中,但我现在需要做的是拥有一个字节数组十六进制的内容:

stringArray[0] = "0x0f";

byteArray[0] = 0x0f;

我该如何执行此操作(用户可以加载文本文件,所以我不知道这些值是什么),是否可以使用某种算术?

This might sound odd, but my issue is that I have a text string of hex values from a text file, like so:

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

I have stored them in an array split by the delimiters, but what I now need to do is have a byte array of what thay are in hex:

stringArray[0] = "0x0f";

byteArray[0] = 0x0f;

How do I do this (the user can load the text file, so I don't know what the values are), is there some sort of arithmetic I can use?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

往事风中埋 2024-11-07 19:57:14

非奇数十六进制字符串是正确的。
检查你得到这个字符串的来源。
这是因为由于字符数限制而导致字符串被截断。
如果字符串是图像存储在数据库中,然后使用不使用任何工具的程序检索它

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

Non of Odd hex string is correct.
Check source from you get this string .
It is because of truncation of string due to limit no of characters.
If String is image is stored in database then retrieve it using program not using any tools

I was having same problem with .net and MSSQL and by using webservice and Java Client

总以为 2024-11-07 19:57:13

如果您的字符串格式正确,您可以使用以下代码创建数组(如果输入格式错误,将引发异常):

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

If your string is in the correct format you can create your array using this code (will throw exceptions if the input is badly formatted):

var text = "0x0f, 0x40, 0xff";
var bytes = text
  .Split(new[] { ", " }, StringSplitOptions.None)
  .Select(s => (Byte) Int32.Parse(s.Substring(2), AllowHexSpecifier));
温柔一刀 2024-11-07 19:57:13

您只需解析每个字符串即可。因为每个都已经只有一个值,所以您可以这样做:

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

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

You just have to parse each string. Because each one is already only one value, you can do this:

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

where s is the string you want to parse, and b is the resulting value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文