Forum: Mikrocontroller und Digitale Elektronik Bedeutung von "&"


von Sven (Gast)


Lesenswert?

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?? :)

von Bruno (Gast)


Lesenswert?


von Andreas K. (ergoproxy)


Lesenswert?

Nennt sich Operatoren 
http://home.fhtw-berlin.de/~junghans/cref/CONCEPT/expressions.html und 
das Teil da stellt eine logische UND-Verknüpfung dar.

Der ausdruck ist wahr, wenn i und value den gleichen Wert haben.
p.s. Da fehlt das ;

Gruß ErgoProxy

von A. F. (artur-f) Benutzerseite


Lesenswert?

Bitweise und
wie z.B. 0b01101 & 0b10001 = 0b00001

Ja es gibt 10e-15 Seiten, wo man C Grundlagen lernen kann.
http://www.mikrocontroller.net/articles/C

von Bruno (Gast)


Lesenswert?

Schneller ;)

von Sven (Gast)


Lesenswert?

Danke für die schnelle hilfe...

grüße

von Johannes M. (johnny-m)


Lesenswert?

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).

von Andreas K. (ergoproxy)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

>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.

von Johannes M. (johnny-m)


Lesenswert?

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... ;-)

von Andreas K. (ergoproxy)


Lesenswert?

Oh Danke  @Johannes M. hast recht habs mit && verwechselt ^^ die 8 
Stunden an den EIDE Specs scheinen sich etwas bemerkbar zu machen.

Gruß ErgoProxy

von Johannes M. (johnny-m)


Lesenswert?

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...

von Sven (Gast)


Lesenswert?

cool :?

also muss bei "&" nur in beiden mindestens ein gleiches bit 1 sein??

von Johannes M. (johnny-m)


Lesenswert?

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.

von Sven (Gast)


Lesenswert?

ok ... danke euch :D

grüße

von Andreas K. (ergoproxy)


Lesenswert?

@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

von Sinusgeek (Gast)


Lesenswert?

Es ist erschreckend, mit welcher Selbstverständlichkeit falsche 
Antworten gegeben werden...

~

von Andy (Gast)


Lesenswert?

@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!

von Johannes M. (johnny-m)


Lesenswert?

@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!

von Sinusgeek (Gast)


Lesenswert?

@Johannes:

Dir und Deinem Anhang auch ein frohes, xundes und erfolgreiches 2009.

Und allen Anderen natürlich auch...

~

von Andreas K. (ergoproxy)


Lesenswert?

@ 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

von Sinusgeek (Gast)


Lesenswert?

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...

~

von Sven (Gast)


Lesenswert?

so leute danke für die antworten aber haun' müsst ihr euch ned :D

frohes neues ja!

grüße
sven

von Severino R. (severino)


Lesenswert?

Sinusgeek wrote:

> So, jetzt muss ich erstmal wieder ein paar Sinüsse knacken...

Betreffend den Plural von Sinus siehe folgenden Link:

http://matheplanet.com/default3.html?call=viewtopic.php?forum=50&topic=9749

SCNR

von Sinusgeek (Gast)


Lesenswert?

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.

~

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.