C# Convert a number larger than Int64 to HexaDecimal
Question
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.
Solution
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.
OTHER TIPS
Perhaps:
BigInteger b = 9407524828459565063;
var hex = b.ToString("X2");
Or
ulong l = 9407524828459565063;
var hex = l.ToString("X2");
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");
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow