6

所以,我有一个 13 个字符的字符串。

string str = "HELLOWORLDZZZ";

我需要将其作为 ASCII 表示(十六进制)存储在 uint 变量中。我该怎么做呢?

4

6 回答 6

12

您可以使用将字符串转换为具有 ASCII 编码的数组(每个字符采用一个)。然后,调用将该字节数组转换为. 但是,作为@R。Bemrose在评论中指出,a只有 4秒,因此您需要先对阵列进行一些分区。Encoding.ASCII.GetBytesbytebyteBitConverter.ToUInt32uintuintbyte

于 2010-11-16T21:14:02.947 回答
2

我认为这是您想要的方法

Convert.ToUInt32(yourHexNumber, 16);

请参阅此处的文档。

于 2010-11-16T21:06:51.187 回答
1
uint.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
于 2010-11-16T21:05:11.563 回答
1

请参阅我的评论,但如果您只想将 ASCII 字符串转换为十六进制,这是我怀疑的:

public string HexIt(string yourString)
{
    string hex = "";
    foreach (char c in yourString)
    {
        int tmp = c;
        hex += String.Format("{0:x2}", (uint)System.Convert.ToUInt32(tmp.ToString()));
    }
    return hex;
}
于 2010-11-16T21:11:21.670 回答
0

这会将您的string(使用 Base 16 表示)转换为uint.

uint val = Convert.ToUInt32(str, 16);
于 2010-11-16T21:05:43.137 回答
0

现在我想我明白你在对 bdukes 答案的评论中想要什么。

如果您想要hex字符串中每个字符的代码,您可以使用 LINQ 获取它。

var str = "ABCD";
var hex = str.Select(c => ((int)c).ToString("X"))
    .Aggregate(String.Empty, (x, y) => x + y);

hex将是一个字符串41424344

于 2010-11-16T21:17:32.870 回答