十六进制到十进制值无效

时间:2015-01-30 15:20:07

标签: c#

尝试将十六进制转换为十进制但下面的代码段返回的值不正确。十六进制值为:BA51A114,预期结果为:3125911828。

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

这是返回:-1169055468。当转换回十六进制时,该值现在为:FFFFFFFFBA51A114。

2 个答案:

答案 0 :(得分:7)

你的bounds of an int溢出了大约10亿。您需要将其解析为long

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

或者khlr指出,在这种情况下,uint也足够了。不管怎样,再过十亿......

答案 1 :(得分:1)

您已超过最大值2147483647