所以,我有一个13个字符的字符串。
string str = "HELLOWORLDZZZ";
我需要将它作为ASCII表示(hex)存储在uint变量中。我该怎么做?
答案 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)
答案 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