tag:forum.selfhtml.org,2005:/selfBitmuster - mehr als ein Bit gesetzt? – SELFHTML-Forum2005-11-09T18:12:26Zhttps://forum.selfhtml.org/self/2005/nov/7/bitmuster-mehr-als-ein-bit-gesetzt/895066#m895066Markus Schmitt2005-11-07T13:05:45Z2005-11-07T13:05:45ZBitmuster - 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#m895070Eterniushttp://nullhirn.com2005-11-07T13:29:24Z2005-11-07T13:29:24ZBitmuster - 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#m895067FraFu2005-11-07T14:32:41Z2005-11-07T14:32:41ZBitmuster - 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#m895068FraFu2005-11-07T15:14:02Z2005-11-07T15:14:02ZBitmuster - 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#m895069Markus Schmitt2005-11-07T15:16:43Z2005-11-07T15:16:43ZBitmuster - 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#m895071Markus Schmitt2005-11-07T13:34:20Z2005-11-07T13:34:20ZBitmuster - 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#m895077Eterniushttp://nullhirn.com2005-11-07T13:59:32Z2005-11-07T13:59:32ZBitmuster - 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#m895073Axel Richteraxel.richter.privat@web.de2005-11-07T14:48:07Z2005-11-07T14:48:07ZBitmuster - 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#m895072Rainer S.websklave@black-magic-night.dehttp://www.black-magic-night.de/2005-11-09T18:12:26Z2005-11-09T18:12:26ZBitmuster - 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#m895074Markus Schmitt2005-11-07T15:02:08Z2005-11-07T15:02:08ZBitmuster - 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#m895076FraFu2005-11-07T15:20:16Z2005-11-07T15:20:16ZBitmuster - 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#m895075Axel Richteraxel.richter.privat@web.de2005-11-07T15:39:37Z2005-11-07T15:39:37ZBitmuster - 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>