C#で大きな数値(例:9407524828459565063)を16進数(例:828E3DFD00000000)に変換しようとしています。C#Int64より大きい数値をHexaDecimalに変換します
問題は、数値がInt64の最大値よりも大きいことです。
私はどこを見上げても、解決策を見つけることができませんでした。
ここにヘルプがありますか?
ありがとうございます。
C#で大きな数値(例:9407524828459565063)を16進数(例:828E3DFD00000000)に変換しようとしています。C#Int64より大きい数値をHexaDecimalに変換します
問題は、数値がInt64の最大値よりも大きいことです。
私はどこを見上げても、解決策を見つけることができませんでした。
ここにヘルプがありますか?
ありがとうございます。
これを行うには、System.Numerics.BigIntegerクラスを使用します。正確な解決方法は、この番号を持つ形式(文字列、倍精度、その他)によって異なります。
文字列(s
)の場合:
var bigInt = BigInteger.Parse(s);
var hexString = bigInt.ToString("x");
ダブルIF(d
):
var bigInt = new BigInteger(d);
var hexString = bigInt.ToString("x");
...エトセトラ。
BigIntegerは.Net 4.0で導入されていますので、それを使うことができれば[BigIntegerをHexadeximalに変換できます](http://stackoverflow.com/questions/4988858/biginteger-to-hexadeximal) –
BigInteger.ToString ( "X") 'は時に先行ゼロを追加します。先行ゼロを含まない16進数、2進数、8進数に変換する拡張メソッドを作成しました(http://stackoverflow.com/questions/14048476/#15447131参照)。 –
あなたは.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");
:
BigInteger b = 9407524828459565063;
var hex = b.ToString("X2");
それとも
ulong l = 9407524828459565063;
var hex = l.ToString("X2");
を.Net 4.0を使用していますか? –
int64よりも大きければ、どうやって*受け取っていますか?テキスト? – GalacticCowboy