Hi,
ich habe hier folgende Abfrage…leider verstehe ich sie nicht richtig:
if (( A & B ) == 0)
Die Bedingung ist erfüllt bei folgenden Werten:
A ist 0
B ist 1
kann mir das mal einer erklären?
danke!!!
Hi,
ich habe hier folgende Abfrage…leider verstehe ich sie nicht richtig:
if (( A & B ) == 0)
Die Bedingung ist erfüllt bei folgenden Werten:
A ist 0
B ist 1
kann mir das mal einer erklären?
danke!!!
Hi,
ich habe hier folgende Abfrage…leider verstehe ich sie nicht
richtig:if (( A & B ) == 0)
Die Bedingung ist erfüllt bei folgenden Werten:
A ist 0
B ist 1kann mir das mal einer erklären?
Ich versuche es mal. Bei diesem UND werden die Zahlen bitweise miteinander verunded (wat ein Wort *schuettel*).
Heisst, wenn einer der Variablen eine 0 aufweist, ist es egal, ob die andere Variable dort eine 0 oder eine 1 stehen hat. Erst wenn beide Variablen an der selben bit-Position eine 1 aufweisen, ist das Ergebnis != 0.
hth
/dirk
Hi Dirk,
das heisst also, bei einstelligen int-Werten könnte man auch schreiben
if ( ( A == 0 ) || ( B == 0)) ??
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo.
Ich glaube, da besteht eine kleine Verwechslung:
if ( ( A == 0 ) || ( B == 0)) ??
ist eine rein logische Bedingung. Sie ist erfüllt, wenn A oder B null (0) sind. Es müssen nicht beide null sein. Sind beide ungleich null ist die Bedingung nicht erfüllt -> False.
if (( A & B ) == 0)
ist eine binäre Bedingung. Sie ist erfüllt, wenn die Bits an der gleichen Stelle verunded werden und dabei null rauskommt.
Diese Bedingung ist erfüllt, wenn A oder B oder beide null (0) sind.
Aber auch, wenn z.B. A = 4 und B = 2 ist:
A = 4 = …0100
B = 2 = …0010
A & B = 0 = …0000 == 0 -> True, Bedingung erfüllt.
Bei der oberen Bedingung würde das zu False führen ((A = 4 == 0 -> False) || (B = 2 == 0 -> False) -> False).
Chris
Hi Chris.
vielen dank für diese tolle erklärung!
steffi
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]