簡體   English   中英

如何將十六進制字符串轉換為十進制值

[英]How to convert hex string into decimal value

我試圖將十六進制字符串轉換為十進制值,但它沒有給我預期的結果

我試過convert.toint32(hexa,16)convert.todecimal(hexa)

我有一個字符串看起來像這樣:

  • 1 12 94 201 198

我把它轉換成:

  • 10C5EC9C6

我知道結果是:

  • 4502505926

我需要你的幫助

非常感謝您的幫助 :)

System.Decimal (C# decimal )類型是浮點類型,不允許使用NumberStyles.HexNumber說明符。 System.Int32 (C# int )類型的允許值范圍不足以進行轉換。 但您可以使用System.Int64 (C# long )類型執行此轉換:

string s = "10C5EC9C6";
long n = Int64.Parse(s, System.Globalization.NumberStyles.HexNumber);
'n ==> 4502505926

當然,您可以在之后將結果轉換為decimal

decimal d = (decimal)Int64.Parse(s, System.Globalization.NumberStyles.HexNumber);

或者,您可以使用十進制編碼的十六進制組直接轉換原始字符串,並將轉換保存為十六進制字符串。

string s = "1 12 94 201 198";
string[] groups = s.Split();
long result = 0;
foreach (string hexGroup in groups) {
    result = 256 * result + Int32.Parse(hexGroup);
}
Console.WriteLine(result); // ==> 4502505926

因為一個組代表2個十六進制數字,所以我們乘以16 * 16 = 256。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM