Logic-Abfrage
Tom
- programmiertechnik
0 ChrisB0 ChrisB
0 JürgenB0 Texter mit x0 dedlfix0 Texter mit x0 dedlfix
0 Texter mit x
1 Gunnar Bittersmann
Hello Leute,
gibts hier noch echte Logic-Fachleute?
Ich stehe gerade furchtbar auf dem Schlauch und brauche Hilfe:
Logische Größe 1: 1 0 0 0 0 1 0 1 (Forderung)
Logische Größe 2: 1 0 0 0 0 1 1 1 (Leistung)
---------------
???
Ich benötige jetzt die Aussage, dass in (2) mindestens die Bits gesetzt sind, die in (1) gesetzt (gefordert) wurden.
Meine boolesche Algebra ist leider total eingerostet und da hilft auch kein WD40 mehr ;-O
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi,
Logische Größe 1: 1 0 0 0 0 1 0 1 (Forderung)
Logische Größe 2: 1 0 0 0 0 1 1 1 (Leistung)
Ich benötige jetzt die Aussage, dass in (2) mindestens die Bits gesetzt sind, die in (1) gesetzt (gefordert) wurden.
Wie wär’s damit?
F == F & L & (F | L)
Oder auch F ^ F & L & (F | L) muss gleich 00000000 sein.
MfG ChrisB
Hi,
Oder auch F ^ F & L & (F | L) muss gleich 00000000 sein.
Da fehlte noch die Klammerung, F ^ (F & L & (F | L)).
MfG ChrisB
Hallo Tom,
prüf mal Forderung oder Leistung auf 0.
Gruß, Jürgen
Hallo,
prüf mal Forderung oder Leistung auf 0.
ein "nicht" vergessen :(
prüf mal nicht Forderung oder Leistung auf 0.
(~f | l) == 0
Gruß, Jürgen
Hi,
prüf mal nicht Forderung oder Leistung auf 0.
(~f | l) == 0
Oh, äh … da war ich wohl auch etwas eingerostet.
MfG ChrisB
Hello,
zurechtgebastelt funktioniert das:
(F - (F & L)) > 0
Dann erfüllt die Leistung mindestens die Forderung.
Kann man das in PHP einfach so schreiben? Erscheint mir ja etwas unsauber...
Da aber (F & L) auf jeden Fall numerisch kleiner als F ist, sollte es keine Probleme mit Übertrag o.ä. geben, oder irre ich mich da?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo,
zurechtgebastelt funktioniert das:
(F - (F & L)) > 0
Dann erfüllt die Leistung mindestens die Forderung.
Kann man das in PHP einfach so schreiben?
kann man, aber boolsche und arithmetische Operationen in einem Ausdruck ist "pfui", weil es nicht immer das ergibt, was man erwartet.
Warum nicht einfach F & ^L, wobei ^ hier wie in C der Operator für bitweise Negation sein soll.
Sobald dieser Ausdruck ungleich Null ("truthy") ist, sind noch Forderungen offen, zu denen die Leistung fehlt.
Da aber (F & L) auf jeden Fall numerisch kleiner als F ist, ...
Kleiner oder gleich.
sollte es keine Probleme mit Übertrag o.ä. geben, oder irre ich mich da?
In diesem konkreten Fall klappt das mit den verschiedenartigen Operationen. Schön ist es trotzdem nicht.
Ciao,
Martin
Hallo Tom,
(F - (F & L)) > 0
wo hast du den Ausdruck denn her? Warum nicht
if(((~f) | l) == 0) ... // OK
Gruß, Jürgen
Logische Größe 1: 1 0 0 0 0 1 0 1 (Forderung)
Logische Größe 2: 1 0 0 0 0 1 1 1 (Leistung)
---------------???
Ich benötige jetzt die Aussage, dass in (2) mindestens die Bits gesetzt sind, die in (1) gesetzt (gefordert) wurden.
beispielsweise
(F XOR L) Unterschied vorhanden?
((F XOR L) AND F) Unterschied vorhanden wo 1 gefordert?
((F XOR L) AND F) = 0 alles wird gut
Hello,
Logische Größe 1: 1 0 0 0 0 1 0 1 (Forderung)
Logische Größe 2: 1 0 0 0 0 1 1 1 (Leistung)
---------------???
Ich benötige jetzt die Aussage, dass in (2) mindestens die Bits gesetzt sind, die in (1) gesetzt (gefordert) wurden.
beispielsweise
(F XOR L) Unterschied vorhanden?
((F XOR L) AND F) Unterschied vorhanden wo 1 gefordert?
((F XOR L) AND F) = 0 alles wird gut
Danke, Ihr habt mich überzeugt ;-)
So mache ich das. Die Fehlenden Forderungen sind damit auch leicht ablesbar.
Tom vom Berg
Tach!
Ich benötige jetzt die Aussage, dass in (2) mindestens die Bits gesetzt sind, die in (1) gesetzt (gefordert) wurden.
Denk ich zu einfach oder die anderen Antworten zu kompliziert?
Wenn Leistung und Forderung gleich Forderung ist, sollte doch alles gut sein.
10000111 Leistung
10000101 & Forderung
--------
10000101 =
10000100 Leistung
10000101 & Forderung
--------
10000100 kaputt
dedlfix.
Hallo dedlfix,
schaust Du bitte mal da rein.
Ich erwarte nicht, daß Du für mich den Code durchsuchst um die Frage zu beantworten aber wenn Du es aus dem Stegreif weißt, wäre eine Antwort nett.
Tach!
schaust Du bitte mal da rein.
Ich erwarte nicht, daß Du für mich den Code durchsuchst um die Frage zu beantworten aber wenn Du es aus dem Stegreif weißt, wäre eine Antwort nett.
Ich weiß es nicht, weiß nicht mal, was da wie funktioniert, ich schau da selten rein. Wenn du keine einzelnen Einträge auf Seiten haben möchtest, musst du feststellen, ob du am Anfang (oder vielleicht auch Ende) bist und dnan von da aus die letzten x Einträge nehmen. Ist nur etwas doof, wenn man durchblättert und dann was zu sehen bekommt, was man doch schon hatte.
dedlfix.
Denk ich zu einfach oder die anderen Antworten zu kompliziert?
Wenn Leistung und Forderung gleich Forderung ist, sollte doch alles gut sein.
Meine Vermutung: Wer etwas lögisch löst, tendiert wohl dazu es rein logisch zu lösen. In anderen Lösungen kommt zwar auch ein Vergleich vor aber das Prüfen auf Null (oder auf nicht Null) könnte man auch weglassen*. Deine Lösung verlangt den Vergleich.
*Wenn ((Logikaudruck) = Null) dann ... kann man auch als Wenn (Logikausdruck) dann nicht ... schreiben.
@@Tom:
nuqneH
Logische Größe 1: 1 0 0 0 0 1 0 1 (Forderung)
Logische Größe 2: 1 0 0 0 0 1 1 1 (Leistung)
---------------
Ich benötige jetzt die Aussage, dass in (2) mindestens die Bits gesetzt sind, die in (1) gesetzt (gefordert) wurden.
Wie kommt man drauf?
Du willst prüfen, ob (bitweise) gilt: wenn F, dann L.
F ⇒ L ist gleichbedeutend mit ¬F ∨ L. (Für E-Techniker und ITler: (NOT F) OR L.) Das ist das, was JürgenB sagte.
Die Negation davon ist nach de Morgan ¬(¬F ∨ L) = F ∧ ¬L, wie Der Martin sagte. (Für E-Techniker und ITler: F AND (NOT L).)
Qapla'