我正尝试在C#中将一个大数字(例如: 9407524828459565063)转换为十六进制(例如: 828E3DFD00000000)。
问题是这个数字大于Int64的最大值。
我到处寻找,但找不到一个可行的解决方案。
这里有人帮忙吗?
谢谢。
发布于 2012-04-19 03:10:57
我会使用System.Numerics.BigInteger类来做这件事。确切的解决方案取决于您拥有此数字的格式:字符串、双精度、其他。
如果字符串(s):
var bigInt = BigInteger.Parse(s);
var hexString = bigInt.ToString("x");如果为双精度(d):
var bigInt = new BigInteger(d);
var hexString = bigInt.ToString("x");..。等等。
发布于 2012-04-19 03:12:17
也许:
BigInteger b = 9407524828459565063;
var hex = b.ToString("X2");或
ulong l = 9407524828459565063;
var hex = l.ToString("X2");发布于 2012-04-19 03:11:38
如果您使用的是.NET 4.0,则可以查看BigInteger类:
http://msdn.microsoft.com/en-us/library/system.numerics.biginteger.aspx
BigInteger bi = new BigInteger();
bi = 9407524828459565063;
string bix = bi.ToString("X");https://stackoverflow.com/questions/10216227
复制相似问题