所以,我有一个 13 个字符的字符串。
string str = "HELLOWORLDZZZ";
我需要将其作为 ASCII 表示(十六进制)存储在 uint 变量中。我该怎么做呢?
您可以使用将字符串转换为具有 ASCII 编码的数组(每个字符采用一个)。然后,调用将该字节数组转换为. 但是,作为@R。Bemrose在评论中指出,a只有 4秒,因此您需要先对阵列进行一些分区。Encoding.ASCII
.
GetBytes
byte
byte
BitConverter.ToUInt32
uint
uint
byte
uint.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
请参阅我的评论,但如果您只想将 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;
}
这会将您的string
(使用 Base 16 表示)转换为uint
.
uint val = Convert.ToUInt32(str, 16);
现在我想我明白你在对 bdukes 答案的评论中想要什么。
如果您想要hex
字符串中每个字符的代码,您可以使用 LINQ 获取它。
var str = "ABCD";
var hex = str.Select(c => ((int)c).ToString("X"))
.Aggregate(String.Empty, (x, y) => x + y);
hex
将是一个字符串41424344