popi
13.06.2006, 18:36
Hallo zusammen,
ich habe hier ein Programm, welches ich als erstes Projekt für einen Mega64 übernehmen will.
Nun sind da diese Operatoren und ich weiss nicht, wie diese so funktioniren.
Laut dem AVR-GCC Tutorial konnte ich folgendes lesen:
x |= (1 << Bitnummer); // wird ein Bit in x gesetzt
x &= ~(1 << Bitnummer); // wird ein Bit in x geloescht
Nun, das erste Beispiel ist logisch.
Ich mache eine ODER-Verknüpfung mit einem Bestimmten Bit und egal was vorhin drinstand, 1 ODER 1 = 1 und somit wird der Bit gesetzt.
Nun verstehe ich das zweite Beispiel nicht.
Warum wird eine 1 negiert (ich vermute, das die Tilde negiert!), und dann mit UND Verknüpft? Kann man denn nicht gleich eine Null nehmen?
Also x &= (0 << Bitmuster) ???
Und jetzt die Meisterfrage ;o) Wie ist denn der Syntax zu verstehen; Also wie liest man den Befeht richtig? Für welchen deutschen Ausdruck stehen denn die << Zeichen.
Danke im Voraus und Grüße
popi[/url]
ich habe hier ein Programm, welches ich als erstes Projekt für einen Mega64 übernehmen will.
Nun sind da diese Operatoren und ich weiss nicht, wie diese so funktioniren.
Laut dem AVR-GCC Tutorial konnte ich folgendes lesen:
x |= (1 << Bitnummer); // wird ein Bit in x gesetzt
x &= ~(1 << Bitnummer); // wird ein Bit in x geloescht
Nun, das erste Beispiel ist logisch.
Ich mache eine ODER-Verknüpfung mit einem Bestimmten Bit und egal was vorhin drinstand, 1 ODER 1 = 1 und somit wird der Bit gesetzt.
Nun verstehe ich das zweite Beispiel nicht.
Warum wird eine 1 negiert (ich vermute, das die Tilde negiert!), und dann mit UND Verknüpft? Kann man denn nicht gleich eine Null nehmen?
Also x &= (0 << Bitmuster) ???
Und jetzt die Meisterfrage ;o) Wie ist denn der Syntax zu verstehen; Also wie liest man den Befeht richtig? Für welchen deutschen Ausdruck stehen denn die << Zeichen.
Danke im Voraus und Grüße
popi[/url]