存储在int中的字符串到十六进制

时间:2013-07-05 20:48:56

标签: c# string int

我目前有这段代码

int MainBase = 0x4E4DBC;

我不想要硬编码所以我决定设置一个配置文件。所以我有一个带有“4E4DBC”的字符串。

我如何解析它以便它可以在int中?我已经尝试过Byte.Parse和Convert.ToByte,但他们都给我“太大”的错误。

3 个答案:

答案 0 :(得分:2)

First hit on google

Convert.ToInt32("4E4DBC", 16);

答案 1 :(得分:1)

您可以使用ToInt32方法:

int value = Convert.ToInt32("4E4DBC", 16);

答案 2 :(得分:1)

永远不要将内存位置存储为整数,使用IntPtr,这是有原因的。原因是IntPtr对x86和x64都有效,而int对于存储64位指针(long)来说太小了,所以当遇到问题时你会遇到问题你切换平台。

使用上面的答案将其解析为int,然后使用

中的内容

var somePtr = new IntPtr(value);

如果在x86上你的指针将是4个字节,在x64上你的指针将是8个字节。

此外,byte只有一个字节,因此永远不能存储一个4字节的整数。这就是你在VS中遇到“太大”错误的原因。您可以在how large the types in C# are here找到相关信息。你应该查一查。