-2

我目前有这个代码

int MainBase = 0x4E4DBC;

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

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

4

3 回答 3

2

第一次点击谷歌

Convert.ToInt32("4E4DBC", 16);
于 2013-07-05T20:51:43.193 回答
1

永远不要将内存位置存储在整数中,使用IntPtr,它的存在是有原因的。原因是它IntPtr适用于 x86 和 x64,而 anint太小而无法存储 64 位指针(即 a long),因此在切换平台时会遇到问题。

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

var somePtr = new IntPtr(value);

如果在 x86 上,您的指针将分别为 4 个字节,在 x64 上分别为 8 个字节。

此外,abyte只有一个字节,因此永远无法存储一个整数,即 4 个字节。这就是为什么您在 VS 中遇到“太大”错误的原因。您可以在此处找到有关C# 中的类型有多大的信息。你应该查一下。

于 2013-07-05T21:16:53.847 回答
1

您可以使用以下ToInt32方法:

int value = Convert.ToInt32("4E4DBC", 16);
于 2013-07-05T20:50:43.490 回答