質問

私はBitConverterにしようとすると、

、それはバイト配列を必要とし、私はthat.IはのInt32を持っていると私はUInt32型に変換する必要はありません。

C ++ではそれと全く問題ありませんでした。

役に立ちましたか?

解決

簡単なキャストはあなたが必要とするすべてです。それがこれをやって精度を失うことは可能ですので、変換は、明示的である。

long x = 10;
ulong y = (ulong)x;

他のヒント

試します:

Convert.ToUInt32()
Int32 i = 17;
UInt32 j = (UInt32)i;

編集:質問は、あなたが長いか、int型を持っているかどうかは不明である。

この機能が与えられます:

string test(long vLong)
{
    ulong vULong = (ulong)vLong;
    return string.Format("long hex: {0:X}, ulong hex: {1:X}", vLong, vULong);
}

そして、この使用方法:

    string t1 = test(Int64.MinValue);
    string t2 = test(Int64.MinValue + 1L);
    string t3 = test(-1L);
    string t4 = test(-2L);

この結果になります:

    t1 == "long hex: 8000000000000000, ulong hex: 8000000000000000"
    t2 == "long hex: 8000000000000001, ulong hex: 8000000000000001"
    t3 == "long hex: FFFFFFFFFFFFFFFF, ulong hex: FFFFFFFFFFFFFFFF"
    t4 == "long hex: FFFFFFFFFFFFFFFE, ulong hex: FFFFFFFFFFFFFFFE"

あなたも負の値のために、ビットが完全に保存されて見ることができるようにます。

は、単純にそれをキャスト、ULONGに長いを変換するには

long a;
ulong b = (ulong)a;
それが負の数の場合は、

C#が例外をスローしません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top