我目前有这段代码
int MainBase = 0x4E4DBC;
我不想要硬编码所以我决定设置一个配置文件。所以我有一个带有“4E4DBC”的字符串。
我如何解析它以便它可以在int中?我已经尝试过Byte.Parse和Convert.ToByte,但他们都给我“太大”的错误。
答案 0 :(得分:2)
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找到相关信息。你应该查一查。