Pregunta

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.

¿Fue útil?

Solución

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.

Otros consejos

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");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top