4

C#で大きな数(例:9407524828459565063)を16進数(例:828E3DFD00000000)に変換しようとしています。

問題は、数値がInt64の最大値よりも大きいことです。

私はいたるところを見上げましたが、実用的な解決策を見つけることができませんでした。

ここで何か助けはありますか?

ありがとうございました。

4

3 に答える 3

9

これを行うには、System.Numerics.BigIntegerクラスを使用します。正確な解決策は、この番号の形式(string、double、other)によって異なります。

文字列(s)の場合:

var bigInt = BigInteger.Parse(s);
var hexString = bigInt.ToString("x");

ダブル(d)の場合:

var bigInt = new BigInteger(d);
var hexString = bigInt.ToString("x");

...etcetera。

于 2012-04-18T19:10:57.027 に答える
3

多分:

BigInteger b = 9407524828459565063;
var hex = b.ToString("X2");

または

ulong l = 9407524828459565063;
var hex = l.ToString("X2");
于 2012-04-18T19:12:17.447 に答える
2

.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");
于 2012-04-18T19:11:37.680 に答える