Reputation: 321
I am trying to convert a big number(ex: 9407524828459565063) to Hexadecimal(ex: 828E3DFD00000000) in C#.
The problem is that the number is larger than Int64's max value.
i looked up everywhere and couldn't find a working solution.
Any help over here?
Thank you.
Upvotes: 4
Views: 3609
Reputation: 46909
Perhaps:
BigInteger b = 9407524828459565063;
var hex = b.ToString("X2");
Or
ulong l = 9407524828459565063;
var hex = l.ToString("X2");
Upvotes: 3
Reputation: 27608
If you are using .NET 4.0, you might have a look at the BigInteger class:
http://msdn.microsoft.com/en-us/library/system.numerics.biginteger.aspx
BigInteger bi = new BigInteger();
bi = 9407524828459565063;
string bix = bi.ToString("X");
Upvotes: 2
Reputation: 43036
I would use the System.Numerics.BigInteger class to do this. The exact solution depends on the format in which you have this number: string, double, other.
If string (s
):
var bigInt = BigInteger.Parse(s);
var hexString = bigInt.ToString("x");
If double (d
):
var bigInt = new BigInteger(d);
var hexString = bigInt.ToString("x");
... etcetera.
Upvotes: 9