例如,我有以下字符串:“0x78000105d0e030”
如果这不是字符串,我可以很容易地得到如下值:

ulong myValue = 0x780000105d0e0030;

给我的价值是:8646911354832027696
但是,当我想按如下方式解析它时:
var myValue2= Convert.ToInt64("0x780000105d0e0030",16)

给我的价值是:8070450566607667200
然后,myvalue与myvalue2不同。然而,myvalue是正确的,这就是它应该如何工作的。我做错什么了?

最佳答案

Int64是有符号的long
使用Convert.ToUInt64代替:

var myValue2= Convert.ToUInt64("0x780000105d0e0030",16);

10-06 11:22