C#将string转换为uint

时间:2010-11-16 21:01:09

标签: c# string uint

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

string str = "HELLOWORLDZZZ";

我需要将它作为ASCII表示(hex)存储在uint变量中。我该怎么做?

7 个答案:

答案 0 :(得分:14)

看看Convert.ToUInt32(string, int)。例如:

uint parsed = Convert.ToUInt32(str, 16);

答案 1 :(得分:11)

您可以使用Encoding.ASCII . GetBytes将您的字符串转换为带有ASCII编码的byte数组(每个字符占用一个byte)。然后,调用BitConverter.ToUInt32将该字节数组转换为uint。但是,作为 @R。 Bemrose 在评论中注明,uint只有4 byte s,因此您需要先对数组进行一些分区。

答案 2 :(得分:1)

uint.Parse(hexString, System.Globalization.NumberStyles.HexNumber);

答案 3 :(得分:1)

我认为这是你想要的方法

Convert.ToUInt32(yourHexNumber, 16);

请参阅文档here

答案 4 :(得分:1)

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

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;
}

答案 5 :(得分:0)

这会将您的string(基本16代表)转换为uint

uint val = Convert.ToUInt32(str, 16);

答案 6 :(得分: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