2016-05-10 8 views
-4

Ich habe den endgültigen Wert für "" (Datentyp lang). Ich habe ein paar Aufzählungen wieLogischer Operator OR, um den Wert zu erhalten

MONDAY(0x0002) 
TUESDAY(0x0004) 
WEDNESDAY(0x0008) 
THURSDAY(0x0010) 
FRIDAY(0x0020) 
SATURDAY(0x0040) 
SUNDAY(0x0080) 

Wie kann ich überprüfen, wie den endgültige Long-Wert erhalten Werte dieser Aufzählungen zu kombinieren?

+1

Nun, wie hast du mit einem Wert von 3221120076 zu starten bekommen? Was soll das darstellen? –

+0

Ja, das dachte ich mir schon, aber ich arbeite mit externen Daten, so dass das wohl problematisch ist. @JonSkeet – user997777

+0

Nun ja, aber es ist kein Problem, mit dem wir Ihnen helfen können. Wir könnten * mögliche * Möglichkeiten schaffen, Werte zu kombinieren, aber es gibt keine Garantie, dass es dieselbe Bedeutung hat, die Sie wirklich wollen. –

Antwort

1

Ich nehme an, dass Sie nur jeden Wert einmal verwenden können. Wenn das der Fall ist, möchten Sie die Nummer in binairy drehen.

der algorithmus, das zu tun ist: mit Beispiel: 11

11% 2 == 1? ja tmp = 1; und dividiere 11-1 durch 2

5% 2 == 1? ja tmp = 11; das gleiche wie oben;

2% 2 == 1? nein tmp = 110; teile 2 mal 2;

1% 2 == 1? ja tmp = 1101;

jetzt umkehren tmp und Sie bekommen 11 in binairy ist 1011

Verwandte Themen