例如,我有以下字符串:“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);