tag:forum.selfhtml.org,2005:/self Bitmuster - mehr als ein Bit gesetzt? – SELFHTML-Forum 2005-11-09T18:12:26Z https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895066#m895066 Markus Schmitt 2005-11-07T13:05:45Z 2005-11-07T13:05:45Z Bitmuster - mehr als ein Bit gesetzt? <p>Hallo Forum,</p> <p>ich habe ein Rechtesystem mit Bitmasken umgesetzt (in ASP).</p> <p>Ich möchte nun an einer Stelle nur überprüfen, ob ein Benutzer mehr als ein Recht hat, also ob im Bitmuster mehr als ein Bit gesetzt ist. Wieviele und welche Bits das dann sind, ist in diesem speziellen Fall egal.</p> <p>Wie kann ich das abfragen?</p> <p>Viele Grüße,<br> Markus Schmitt</p> https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895070#m895070 Eternius http://nullhirn.com 2005-11-07T13:29:24Z 2005-11-07T13:29:24Z Bitmuster - mehr als ein Bit gesetzt? <p>Hallo,</p> <blockquote> <p>Ich möchte nun an einer Stelle nur überprüfen, ob ein Benutzer mehr als ein Recht hat, also ob im Bitmuster mehr als ein Bit gesetzt ist. Wieviele und welche Bits das dann sind, ist in diesem speziellen Fall egal.</p> </blockquote> <p>ich würde das Bitmuster als Zahl interpretieren und gucken ob es ungleich 0 ist.</p> <p>gruss</p> <div class="signature">-- <br> no strict;<br> no warnings;<br> 79.78 cups of Coffee (Brewed) + Me = Death<br> Reklame ist die Kunst, auf den Kopf zu zielen und die Brieftasche zu treffen. </div> https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895067#m895067 FraFu 2005-11-07T14:32:41Z 2005-11-07T14:32:41Z Bitmuster - mehr als ein Bit gesetzt? <p>Hallo!</p> <blockquote> <p>Ich möchte nun an einer Stelle nur überprüfen, ob ein Benutzer mehr als ein Recht hat, also ob im Bitmuster mehr als ein Bit gesetzt ist. Wieviele und welche Bits das dann sind, ist in diesem speziellen Fall egal.</p> </blockquote> <p>Hhhmmm... Kann es sein, dass immer nur dann ein Bit gesetzt ist, wenn die Zahl im Zehnersystem restlos durch 2 teilbar ist?</p> <p>mfg<br>   frafu</p> https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895068#m895068 FraFu 2005-11-07T15:14:02Z 2005-11-07T15:14:02Z Bitmuster - mehr als ein Bit gesetzt? <p>Hallo!</p> <blockquote> <p>Hhhmmm... Kann es sein, dass immer nur dann ein Bit gesetzt ist, wenn die Zahl im Zehnersystem restlos durch 2 teilbar ist?</p> </blockquote> <p>Völliger Schwachsinn! Bitte gleich wieder vergessen!</p> <p>mfg<br>   frafu</p> https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895069#m895069 Markus Schmitt 2005-11-07T15:16:43Z 2005-11-07T15:16:43Z Bitmuster - mehr als ein Bit gesetzt? <p>Hallo!</p> <blockquote> <blockquote> <p>Hhhmmm... Kann es sein, dass immer nur dann ein Bit gesetzt ist, wenn die Zahl im Zehnersystem restlos durch 2 teilbar ist?</p> </blockquote> <p>Völliger Schwachsinn! Bitte gleich wieder vergessen!</p> </blockquote> <p>;-) Schon passiert.<br> ... Äh, wer, wie, was sollte ich machen? Vergessen? Was?</p> https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895071#m895071 Markus Schmitt 2005-11-07T13:34:20Z 2005-11-07T13:34:20Z Bitmuster - mehr als ein Bit gesetzt? <p>Hi!</p> <blockquote> <blockquote> <p>Ich möchte nun an einer Stelle nur überprüfen, ob ein Benutzer mehr als ein Recht hat, also ob im Bitmuster mehr als ein Bit gesetzt ist. Wieviele und welche Bits das dann sind, ist in diesem speziellen Fall egal.</p> </blockquote> <p>ich würde das Bitmuster als Zahl interpretieren und gucken ob es ungleich 0 ist.</p> </blockquote> <p>Dann weiß ich doch nur, ob überhaupt ein Bit gesetzt ist, ich muss aber die Fälle unterscheiden können, ob nur ein Recht vorhanden ist, oder mehrere ...</p> <p>Es müsste sowas sein wie<br> "bitzahl ist NICHT gleich 2 hoch n (wobei n = ganzzahlig)"<br> oder?<br> Aber wie schreibt man das in VBScript????</p> <p>Markus</p> https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895077#m895077 Eternius http://nullhirn.com 2005-11-07T13:59:32Z 2005-11-07T13:59:32Z Bitmuster - mehr als ein Bit gesetzt? <p>Hi,</p> <blockquote> <p>Dann weiß ich doch nur, ob überhaupt ein Bit gesetzt ist, ich muss aber die Fälle unterscheiden können, ob nur ein Recht vorhanden ist, oder mehrere ...</p> </blockquote> <p>oh das hatte ich falsch gelesen, ich dachte du wolltest nur prüfen ob der benutzer überhaupt ein recht besitzt.</p> <p>gruss</p> <div class="signature">-- <br> no strict;<br> no warnings;<br> 79.78 cups of Coffee (Brewed) + Me = Death<br> Reklame ist die Kunst, auf den Kopf zu zielen und die Brieftasche zu treffen. </div> https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895073#m895073 Axel Richter axel.richter.privat@web.de 2005-11-07T14:48:07Z 2005-11-07T14:48:07Z Bitmuster - mehr als ein Bit gesetzt? <p>Hallo,</p> <blockquote> <p>Es müsste sowas sein wie<br> "bitzahl ist NICHT gleich 2 hoch n (wobei n = ganzzahlig)"<br> oder?<br> Aber wie schreibt man das in VBScript????</p> </blockquote> <p>Dazu müsstest Du uns erst Mal zeigen, wie Deine Bitmuster aussehen und auch näher beschreiben, wie Du die Rechte dort abgelegt hast.</p> <p>viele Grüße</p> <p>Axel</p> https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895072#m895072 Rainer S. websklave@black-magic-night.de http://www.black-magic-night.de/ 2005-11-09T18:12:26Z 2005-11-09T18:12:26Z Bitmuster - mehr als ein Bit gesetzt? <p>Hallo,</p> <blockquote> <p>Dann weiß ich doch nur, ob überhaupt ein Bit gesetzt ist, ich muss aber die Fälle unterscheiden können, ob nur ein Recht vorhanden ist, oder mehrere ...</p> <p>Es müsste sowas sein wie<br> "bitzahl ist NICHT gleich 2 hoch n (wobei n = ganzzahlig)"<br> oder?</p> </blockquote> <p>Wenn Du den Fall, dass die aus der Bitmap gebildete Zahl (ich nenne sie mal BERECHTIGUNGEN) größer 0 ist, shon vorher abgefangen hast, müsste folgende Berechnung</p> <p>log(BERECHTIGUNG)/log(2)</p> <p>eine Zahl ergeben, die nicht ganzzahlig ist.<br> Die Basis des Logarithmus ist egal, es muss nur bei beiden die gleiche sein.</p> <p>So viel zu Theorie...</p> <blockquote> <p>Aber wie schreibt man das in VBScript????</p> </blockquote> <p>Da habe ich keinen blassen Schimmer ;-)</p> <p>Schönen Gruß aus Bilk</p> <p>Rainer</p> https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895074#m895074 Markus Schmitt 2005-11-07T15:02:08Z 2005-11-07T15:02:08Z Bitmuster - mehr als ein Bit gesetzt? <p>Hallo,</p> <blockquote></blockquote> <blockquote> <p>Dazu müsstest Du uns erst Mal zeigen, wie Deine Bitmuster aussehen und auch näher beschreiben, wie Du die Rechte dort abgelegt hast.</p> </blockquote> <p>Bit   Recht<br> --------------<br> 1     Recht1<br> 2     Recht2<br> 4     Recht3<br> 8     Recht4<br> 16    Recht5<br> 32    Recht6<br> 64    Recht7<br> ...   ...</p> <p>Eigenschaft des Benutzers:<br> rechte_var = 7<br> --> Benutzer hat Recht1, Recht2 und Recht3</p> https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895076#m895076 FraFu 2005-11-07T15:20:16Z 2005-11-07T15:20:16Z Bitmuster - mehr als ein Bit gesetzt? <p>Hallo!</p> <blockquote> <h3>Bit   Recht</h3><p>1     Recht1<br> 2     Recht2<br> 4     Recht3<br> 8     Recht4<br> 16    Recht5<br> 32    Recht6<br> 64    Recht7<br> ...   ...</p> </blockquote> <p>Hmmm. Um herauszufinden ob genau 1 Recht gesetzt ist, wirst du um eine mehrteilige IF Abfrage nicht herumkommen.</p> <p>if(RECHT==2^0 OR RECHT==2^1 OR RECHT==2^2 ..... RECHT==2^N)</p> <p>oder das ganze mit einer Schleife:<br> n=Anzahl der möglichen Rechte<br> For(i=0;i<n;i++)<br>    if(RECHT==2^i) => User hat genau ein Recht</p> <p>Eine Lösung mit einer einzigen Formel fällt mir da nicht ein.</p> <p>mfg<br>   frafu</p> https://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895075#m895075 Axel Richter axel.richter.privat@web.de 2005-11-07T15:39:37Z 2005-11-07T15:39:37Z Bitmuster - mehr als ein Bit gesetzt? <p>Hallo,</p> <blockquote> <blockquote></blockquote> <h3>Bit   Recht</h3><p>1     Recht1<br> 2     Recht2<br> 4     Recht3<br> 8     Recht4<br> 16    Recht5<br> 32    Recht6<br> 64    Recht7<br> ...   ...</p> <p>Eigenschaft des Benutzers:<br> rechte_var = 7<br> --> Benutzer hat Recht1, Recht2 und Recht3</p> </blockquote> <p>recht = Array(1, 2, 4, 8, 16, 32, 64)</p> <p>rechte_var = 7</p> <p>anz_rechte = 0</p> <p>For i = 1 To 7<br>    If (rechte_var And recht(i-1)) <> 0 Then<br>      MsgBox ("Nutzer hat Recht " & i)<br>      anz_rechte = anz_rechte + 1<br>    End If<br>  Next</p> <p>msgbox("Nutzer hat " & anz_rechte & " Rechte.")</p> <p>viele Grüße</p> <p>Axel</p>