簡體   English   中英

無效的十六進制到十進制值

[英]Invalid hex to decimal value

嘗試將十六進制轉換為十進制,但以下代碼段返回錯誤的值。 十六進制值為:BA51A114,預期結果為:3125911828。

string hex = "BA51A114";
MessageBox.Show(int.Parse(hex, System.Globalization.NumberStyles.HexNumber).ToString());

這將返回:-1169055468。 當轉換回十六進制時,該值現在為:FFFFFFFFBA51A114。

您正在將一個int范圍溢出約十億。 您需要將其解析為很long

string hex = "BA51A114";
MessageBox.Show(long.Parse(hex, System.Globalization.NumberStyles.HexNumber).ToString());

或者如khlr所指出的那樣,在這種情況下,一個uint也就足夠了。 反正十億左右...

您超過了int最大值2147483647

暫無
暫無

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

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