Frage

Wenn ich mit BitConverter versuchen, es erfordert ein Byte-Array und ich habe nicht that.I haben ein Int32 und ich will es UInt32 konvertieren.

In C ++ gibt es kein Problem mit, dass war.

War es hilfreich?

Lösung

Eine einfache Besetzung ist alles, was Sie brauchen. Da es möglich ist, dies zu tun Präzision zu verlieren, ist die Umwandlung explizit.

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

Andere Tipps

Versuchen:

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

EDIT: Frage ist unklar, ob Sie eine lange oder eine int

Da diese Funktion:

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

Und diese Nutzung:

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

Dies ist das Ergebnis:

    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"

Wie Sie die Bits vollständig erhalten sehen können, auch für negative Werte.

Um eine lange auf ein ulong zu konvertieren, einfach werfen es:

long a;
ulong b = (ulong)a;

C # wird nicht eine Ausnahme auslösen, wenn es eine negative Zahl ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top