Forum: Compiler & IDEs Befehlsfuntion


von Thomas Salzer (Gast)


Lesenswert?

Hallo erstmal,

ich lese schon eine Weile mit und finde immer was neues,
interressantes.
Für eine Sache habe ich allerding noch keine Erklärung gefunden.Da ich
mich mit einem Glcd beschäftige, habe ich nach fertigen Lösungen
gesucht-und auch gefunden. Damit ich die Funktionen besser verstehe,
schreibe ich den Quelltext meist so um, dass ich auch in einem halben
Jahr noch erkenne was gemeint ist.

Die folgende Zeile gibt mir allerdings Rätsel auf:

WriteData(temp | (1<<(y % 8)));

Was ist das für eine Operation, die da in der Klammer abläuft?

In den Tutorials habe ich zum %-Zeichen und Bitoperationen nix
gefunden.

Gruß Thomas

von Michael (Gast)


Lesenswert?

Y % 8 bedeutet die Variable Y wird durch 8 geteilt. Als Ergebnis dieser
Modulusoperation bleibt der ganzzahlige Rest. Beispiel y = 22 y%8 = 6;
diese 6 wird jetzt mit 2 multipliziert (1<<6) und mit temp bitweise
verodert.
Michael

von Jörg Wunsch (Gast)


Lesenswert?

Naja, fast.  1 << 6 ist keine Multiplikation mit zwei, sondern eine
Potenzierung 2 hoch 6 (Linksverschiebung einer 1 um 6 Stellen). ;-)

von Michael (Gast)


Lesenswert?

Böser Flüchtigkeitsfehler.
Michael

von Thomas Salzer (Gast)


Lesenswert?

Danke für die Erkärung.
So habe ich das auch verstehen können.

Denn mal bis zu meiner nächsten Frage.

Gruß
TS

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.