Hallo,
hab ne kleine Frage und ich denke die kann hier schnell und
unkompliziert gelöst werden :D
was bedeutet/bewirkt das "&" in:
if (i & value) DATA=1 (ist nur ein bsp.)
danke schonmal :)
grüße
sven
PS: gibts ne gute seite wo ich solche dinge nachsehen kann?? :)
Andreas K. wrote:
> das Teil da stellt eine logische UND-Verknüpfung dar.
Bitte genauer: Es ist eine bitweise logische UND-Verknüpfung.
> Der ausdruck ist wahr, wenn i und value den gleichen Wert haben.
Falsch. Er ist dann wahr, wenn der Zustand mindestens eines Bits in i
und in value übereinstimmt (und 1, also wahr, ist).
Mag sein hast du aber auch den Fehler gesehn und darauf hingewiesen? ^^
Oder hast du erklärt was das & bedeutet grins so gesehn war ich
schneller. Naja sagen wir Gleichstand =)
Gruß ErgoProxy
>Der ausdruck ist wahr, wenn i und value den gleichen Wert haben.
das stimmt nicht wirklich, das ausdruck ist wahr wenn mindestens ein Bit
in beiden werten 1 ist.
Peter wrote:
>>Der ausdruck ist wahr, wenn i und value den gleichen Wert haben.> das stimmt nicht wirklich, das ausdruck ist wahr wenn mindestens ein Bit> in beiden werten 1 ist.
Mann, bist Du langsam... ;-)
Andreas K. wrote:
> Oh Danke @Johannes M. hast recht habs mit && verwechselt ^^
Auch bei && wird nicht auf Gleichheit überprüft! && ist dann wahr, wenn
beide Opranden wahr sind. Sie müssen aber keineswegs übereinstimmen!
Für eine Überprüfung auf Übereinstimmung gibt es immer noch den
"=="-Operator, und der liefert tatsächlich nur dann ein "true" zurück,
wenn die Operanden gleich sind...
Sven wrote:
> cool :?>> also muss bei "&" nur in beiden mindestens ein gleiches bit 1 sein??
Ja, wenn der Ausdruck als Wahrheitswert ausgewertet wird.
01101000b & 00001111b = 00001000b, letzteres ist ungleich 0, also wahr.
Ansonsten macht der &-Operator nur eine bitweise logische VerUNDung der
Operanden, d.h. er verknüpft im Gegensatz zum &&-Operator nicht die
Operanden als Ganzes, sondern eben jedes Bit einzeln. Das Ergebnis der
Verknüpfung ist eben eine Maske, bei der alle Bits, die in beiden
Operanden 1 sind, ebenfalls 1 sind, alle anderen Bits sind 0.
Ob man dieses Ergebnis wie oben als Wahrheitswert auswertet (in C ist
alles wahr, was nicht falsch ist, und falsch ist nur die 0) oder
anderweitig verwendet, bleibt einem selbst überlassen.
@Johannes M. ja stimmt auch wieder ^^ hast ja Recht, das Beispiel war
einfach komplett falsch ich hab einfach ned richtig drüber nachgedacht
und bin grade auch etwas übermüdet =) also nicht alles so genau nehmen
was ich schreibe.
Gruß ErgoProxy
@Andreas K.:
Wie Du auf der von Dir verlinkten Seite nachlesen kannst, ist das, was
Du schreibst falsch!
Es handelt sich hier nicht um ein logisches Und, sondern ein bitweises.
Und das gibt unterschiedliche Ergebnisse!
@Andy:
Es ist aber auch nicht nötig, eine halbe Stunde nach der eigentlich
endgültigen Klärung des Sachverhaltes durch das "Schuldeingeständnis"
des Verursachers noch mal draufzuhauen...
@Sinusgeek:
Frohes neues!
@ Sinus - Vllt hast du schon mal was von dem berühmten Spruch "errare
humanum est" gehört. Es war weder mit Absicht noch mit sonnstwas es war
einfach nicht vollständig drüber nachgedacht und man hätte mit
Leichtigkeit in dem von mir selbst geposteten und aus google als gut
rausgesuchten Link die richtige Lösung erarbeiten können. Auch das
Stichwort unter dem man suchen muss ist ja wohl nicht falsch. Also ich
verstehe echt überhaupt nicht wenn man es sogar zugegeben hat einen
Fehler gemacht zu haben, dass es Leute gibt die so unverschämt daher
kommen und dann solche Äußerungen machen anstelle eines sinvollen
Beitrags.
@ Andy - Ich empfehle nochmal meinen letzten Beitrag über dir zu LESEN -
da steht schon drinn, dass es mist war, was da oben STEHT, worauf mich
Johannes M. netterweise auch hingewiesen hat.
@ Johannes M. - Nochmal Danke =)
P.s. Ja ich weiß nicht die Trolle füttern aber das musste jetzt einfach
mal sein.
Gruß ErgoProxy
Ich weiß auch ohne Deinen lateinischen Spruch, dass irren menschlich
ist, das passiert mir selbst auch oft genug.
Hier (in diesem Thread) ist nur allerhand Halbwahres bzw. Falsches
geschrieben worden, bis Johannes es richtigstellte.
Meine Äußerung sollte eigentlich bewirken, dass die Betroffenen bzw. die
sich angesprochen Fühlenden künftig etwas mehr über ihre Antwort
nachdenken, ehe sie sie abschicken und nicht, dass man sich auf den
Schlips getreten fühlt. Es geht eben nicht nur um die Schnelligkeit
einer Antwort, sondern auch etwas um das Vermeiden falscher Antworten.
Und daher stehe ich zu meiner Äußerung, ich finde es erschreckend, mit
welcher Unbekümmertheit unüberlegt und vorschnell geantwortet wird, als
ob es für die Antworten Bonuspunkte gäbe.
So, jetzt muss ich erstmal wieder ein paar Sinüsse knacken...
~
Danke für den Link, der betrifft wohl eher den Akademiker und weniger
die Verballhornung (m)eines Nicks. Es handelt sich um einen bewusst
gemachten Fehler, also eine Art von Humor. Oder was stellst Du Dir unter
Sinüsse knacken vor? Gemeit war so etwas wie Haselnüsse, Walnüsse oder
Paranüsse knacken, also eine Tätigkeit mit Nussknacker. Zugegeben, nicht
Jeder ist in der Lage, sooo um die Ecke zu denken. ;-)
Nochmal zum mitmeißeln:
Sinüsse ist eine Verballhornung meines Nicks Sinusgeek.
Sinusgeek ist zwar auch eine Verballhornung, die Hintergründe dazu
gehören aber nicht hierher, das ist eine andere Baustelle... ;-)
Und wenn jetzt ein Moderator aus diesem Thread alle falschen Antworten
und alle nicht zur Frage gehörenden Beiträge (also auch meine) löscht,
dann hat er meinen Segen.
~