我试过
string inpStr = "800000000000000026FFF40000000000";
long num = long.Parse(inpStr, NumberStyles.HexNumber);
并获得错误“Int64的值太大或太小”。如果我使用16位十六进制,它工作正常。如何使用32位十六进制值?
答案 0 :(得分:4)
32位十六进制数不适合long
(64位,因此最多可容纳16位十六进制值)
在.NET 4.0中,您可以使用BigInteger:
const string inpStr = "800000000000000026FFF40000000000";
BigInteger num =
BigInteger.Parse(inpStr, System.Globalization.NumberStyles.HexNumber);
答案 1 :(得分:3)
您的价值太大,无法容纳long
。
您的32位十六进制数使用 log 2 16 32 = 128位; long
仅使用64位。