尝试将十六进制转换为十进制但下面的代码段返回的值不正确。十六进制值为:BA51A114,预期结果为:3125911828。
string hex = "BA51A114";
MessageBox.Show(int.Parse(hex, System.Globalization.NumberStyles.HexNumber).ToString());
这是返回:-1169055468。当转换回十六进制时,该值现在为:FFFFFFFFBA51A114。
答案 0 :(得分:7)
你的bounds of an int
溢出了大约10亿。您需要将其解析为long
:
string hex = "BA51A114";
MessageBox.Show(long.Parse(hex, System.Globalization.NumberStyles.HexNumber).ToString());
答案 1 :(得分:1)
您已超过最大值2147483647