题
因此,我有13个字符的字符串。
string str = "HELLOWORLDZZZ";
我需要将其作为ASCII表示(HEX)存储在UINT变量中。我该怎么做呢?
解决方案
您可以使用 Encoding.ASCII
.
GetBytes
将您的字符串转换为 byte
带有ASCII编码的数组(每个字符 byte
)。然后打电话 BitConverter.ToUInt32
将该字节数组转换为 uint
. 。但是,如 @R。 Bemrose 在评论中指出了 uint
只有4 byte
S,因此您需要先对阵列进行一些分区。
其他提示
看一下 Convert.ToUInt32(string, int)
. 。例如:
uint parsed = Convert.ToUInt32(str, 16);
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
(基本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
不隶属于 StackOverflow