1

我需要以 int32 的形式从用户那里获取供应商 ID,它们通常看起来像这样。0x0EB8 我可以把它写成代码

    int32 vid = 0x0EB8;

这工作得很好。但我需要以字符串的形式从用户那里获取。当我调用 System.Convert.ToInt32("0x0EB8") 时,我得到一个类型转换异常。

这是我的一些测试代码,它给了我异常。

        Int32 blah;
        Console.WriteLine("Please enter the Vendor ID");
        string blahString = Console.ReadLine();
        blah = Convert.ToInt32(blahString);

有人知道这样做的好方法吗?

4

2 回答 2

5

您可以将基数作为第二个参数传递。

int blah = Convert.ToInt32(blahString, 16);
于 2014-03-06T18:20:32.827 回答
2

您可以查看 MSDN 的How to: Convert between Hexadecimal Strings and Numeric Types以了解如何将十六进制转换为数字类型。

该文章的示例:

注意:您需要从原始十六进制字符串中删除“0x”

string hexString = "0EB8";
int num = Int32.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
于 2014-03-06T18:21:55.433 回答