2014-03-06 68 views
1

我需要以int32的形式從用戶那裏獲取供應商ID,他們通常看起來像這樣。 0x0EB8 我可以寫爲代碼將類似0x0EB8的內容從字符串轉換爲int32類型?

int32 vid = 0x0EB8; 

這工作得很好。但我需要以字符串的形式從用戶那裏獲取它。當我調用System.Convert.ToInt32(「0x0EB8」)時,我得到一個類型轉換異常。

這裏是我的一些測試代碼,它給了我例外。

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

任何人都知道一個很好的方法來做到這一點?

回答

5

您可以傳入基數作爲第二個參數。

int blah = Convert.ToInt32(blahString, 16); 
+0

參見[MSDN文檔(http://msdn.microsoft .com/en-us/library/1k20k614.aspx)以獲取更多信息。 – JDB

+1

ahh感謝一幫真正幫助我。 – BurntCandy

2

你可以給看看MSDN的How to: Convert Between Hexadecimal Strings and Numeric Types學習如何十六進制轉換爲數字類型。

那篇文章的例子:

注:您需要從原來的十六進制字符串,刪除 '0X'

string hexString = "0EB8"; 
int num = Int32.Parse(hexString, System.Globalization.NumberStyles.HexNumber); 
+0

檢查出來,它幫助了很多。我正在四處尋找轉換類的MSDN,但這對幫助十六進制頁面沒有任何幫助。 – BurntCandy