下面的某些值的十六进制-> DEC代码返回负值。
f.x十六进制:a4ddfc12应该是:2766011410,但由于某种原因C#返回:-1528955886
代码:https://rextester.com/SHSC23645
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
string myHexStr = "a4ddfc12";
Console.WriteLine(Int32.Parse(myHexStr,
System.Globalization.NumberStyles.HexNumber).ToString());
}
}
}
如果使用此命令,它将是相同的: Console.WriteLine(Int32.Parse(Convert.ToInt32(myHexStr,16).ToString();
预计将获得:2766011410
答案 0 :(得分:1)
该数字太大,无法容纳32位整数,最大值为2147483647和overflows。
请改用64位整数:
string myHexStr = "a4ddfc12";
Console.WriteLine(Int64.Parse(myHexStr, NumberStyles.HexNumber).ToString()); // 2766011410