Bit-Operatoren !?

Geil =)

Du bist echt amüsant..

Das ich das nicht wirklich Verstanden habe hab ich doch gesagt.

und das 1101 = 13 is meinte ich nicht mit Inkorrekt, sondern der Vergleich mit 59 in der IF Schleife !

Das mit mathematisch umrechne hatte ich mich flasch ausgedrückt.. immerhin funktioniert mein Script was ich als letztes gepostet hab ja auf dieser Variante !

Und ehrlich gesagt... klugscheissern nachdem Etwas erledigt ist, zeugt nicht gerade Hilfe! Mir kommt das so vor als müsstest du noch deinen Senf dazu geben =)

und @ Komtur: Danke =) wie gesagt.. ich hatte das mit dem define zwar probiert gehabt.. aber nich wirklich verstanden.. hatte erst später ne deutsche Erklärung, wurde aber nicht wirklich schlau draus =)
 
Zuletzt bearbeitet:
Bitte mäßige deinen Ton.

Ich wollte nur anmerken, dass deine Lösung suboptimal ist. Außerdem gab es noch einige Unklarheiten in deinen Erläuterungen, die ich mit gezieltem Nachfragen klären wollte. Wenn du dich da gleich persönlich angegriffen fühlst, verkehrst du im falschen Medium.

Mich würde im Übrigen immer noch interessieren, worum es sich bei dieser "IF-Schleife" handelt, von der du dauernd schreibst.
 
Re: AW: Bit-Operatoren !?

Suboptimal ist noch arg geschmeichelt. Der absolute Ressourcenfresser, im Vergleich zu den Binaeroperationen...

Irgendwer hat doch mal irgendwann eine extrem gute und ausfuehrliche Anleitung zu den Binaroperationen geschrieben, warst nicht sogar du das, Matthias?
 
Ich hatte 2 Tutorials durchgelesen !
Das eine handelte von XOR und anderen Vergleichen !
Das andere war nicht wirklich mit bsp erklärt. Ich weiss jez leider nicht mehr genau wie die Addressen waren.

Angegriffen hab ich mich nur deswegen gefühlt weil ich an dem mist den ganzen Fr. saß und es wollte partou nicht funktionieren.. =) tut mir ja leid.

Wegen der IF schleife:

PHP:
 $op2 =  decbin('000001'); //aus db als string lesen
$op1 = 59; //fest <=> 111011

if(($op1 & $op2) != $op1) // siehe oben
$op2 = 1
Wenn ( 59 & 1 ) != 59 sind , dann dies.. sonst das
es geht aber auch mit anderen binärzahlen. Und ständig (zumindest fast immer) wäre es dann OK statt forbiddn.

Den Binärcode kann man auch mathematisch errechnen !
ich habe z.b. 511 !
512 256 128 64 32 16 8 4 2 1
0 1 1 1 1 1 1 1 1 1
511 - 512 = negatives Ergebnis ! also Erste Stelle 0
511 - 256 = positives Ergebnis ! also 1
(511-256) - 128 = positives ergebnis ! also 1
usw!

Und am überarbeiten des scriptes bin ich sowieso die ganze zeit =)
hat jmd vielleicht n link zum nem tut vom DEFINE Befehl!? Ich versteh zwar den Sinn, nur nich die komplette Funktionalität...

Aber freut mich über die Rege Beteiligung im Moment =D

mfg
 
Der feinde-Befehl legt einfach nur eine Konstante fest. Also wenn du in dem PHP-Manual nachschlägst wirst du es finden. Also sozusagen wird dieser name im ersten Teil mit den Wert im 2. Teil ersetzt zur Laufzeit
 
Ja, das hab ich verstanden =)

das is im Prinzip nichts anderes als einer Text-Variabel einen Wert zuweisen !

d.h. ich setzte halt meinen z.b. TOM
PHP:
define("FLAG_USER_NORMAL", 1); // entspricht 1
define("FLAG_USER_NEWS", 2); // enspricht 10
define("FLAG_USER_DOWNLOAD", 4) // entspricht 100
define("FLAG_USER_ADMIN", 64); // enspricht 1000000

$user_flag = FLAG_USER_NORMAL | FLAG_USER_NEWS | FLAG_USER_DOWNLOAD;

dann habe ich den wert "6" für TOM ! (oder 111).
Nur dann bin ich doch beim gleichen Problem, das ich wenn ich den Wert in einer Tabelle in SQL habe und Abfrage wieder nur die Zahlen habe..
Ich versteh nich wie ich das dann wieder z.b. in die Definitionen umarbeite! =)
Das was der code für mich aussagt is lediglich eine übersichtliche Rechte verteilung.. aber keine Auswertung !

Komtur? =D

mfg
 
Also das sind dann 7 für TOM ;)

Zur Auswertung hatte ich doch auch was hingeschrieben.
Also du liest diese Zahl aus der Datenbank aus. Also die 7.
Dann kannst du mittels dem AND-Operator (&) deine gewünschte Eigenschaft überprüfen

PHP:
define("FLAG_USER_NORMAL", 1); // entspricht 1
define("FLAG_USER_NEWS", 2); // enspricht 10
define("FLAG_USER_DOWNLOAD", 4) // entspricht 100
define("FLAG_USER_ADMIN", 64); // enspricht 1000000

//auslesen aus der Datenbank
//komplette Eigenschaften des Users TOM stehen in der Variablen $tom

//Abfrage, ob der User Tom News posten darf
if(($tom & FLAG_USER_NEWS) == FLAG_USER_NEWS) {
//er darf news posten
}

//Abfrage, ob User Tom Downloads hinzufügen darf
if(($tom & FLAG_USER_DOWNLOAD) == FLAG_USER_DOWNLOAD) {
//er darf downloads hinzufügen
}

So sehe dann die Auswertungen aus :)
 
rofl...

das so einfach!? Ich glaube ich denke manchmal um viel zu viele Ecken =D
thx@komtur

@johann:so kriegt man also 1900 Beiträge.. is ja interessant !

@matze: ja danke.. das war das glaub ich mit dem XOR ( Bit Operatioren..) werds mir bei Zeiten nochmal durchlesen

Und wegen der "If-Schleife/Abfrage".. ich mein es is ja schön das ihr alle auf die goldene Waage legt, aber ich finde das in diesem Falle trotzdem Klugscheisseart, weil das nicht zur behandlung des Problemes galt !
If Schleifen gibt es sehr wohl. Unser Informatik Lehrer hat uns damals beigebracht:
Durchlaufe diesen Befehl solange bis i=10 ist, wäre eine Schleife! Oder was soll das denn dann sein!?
 
Zurück