Forum: Mikrocontroller und Digitale Elektronik Was macht dieser for Schleife?


von Andrea (Gast)


Lesenswert?

Hi,

kann mir jemand verraten was diese for-Schleife macht?

for( uint16_t c = 0; c < 200; c++)
    daten[a] = c & 0xff;

Vielen Dank!

Andrea

von Andrea (Gast)


Lesenswert?

ui natürlich steht in der 2. Zeile:

daten[c] = c & 0xff;


Sorry!

von Rahul (Gast)


Lesenswert?

sie schreibt in die ersten 200 (0-199) Feldeinträge die Zahlen von 0 bis
199. Irgendwas mit 0xff zu verunden hat keinen Effekt.

von Andrea (Gast)


Lesenswert?

Danke für die Antwort. ´
´
Aber denkst Du wirklich das    c & 0xff; keinen Effekt hat?

Genau das ist nämlich meine Frage .... was macht dieses   c & 0xff;

Vielen Dank!


Andrea

von Rahul (Gast)


Lesenswert?

c ist ein unsigned interger (16bit).
Beispielsweise 1010101010101010
Wenn man das jetzt bitweise mit 0000000011111111 (0xff) verundet kommt
für jede Stelle in der eine 1 steht wieder eine 1 heraus und für jede
Stelle wo eine 0 steht auch wieder eine 0 heraus.
Ich hatte das uint16 übersehen. Es wird also das obere Byte gelöscht.
Hat also doch einen Sinn...

von crazy horse (Gast)


Lesenswert?

tja, wenn aber c sowieso nur von 0..200 läuft gibts kein high byte >0.
Bringt in der Tat also reinweg gar nichts.

von Rahul (Gast)


Lesenswert?

andrea hat bestimmt noch die eine oder andere "0" hinter der 200
vergessen...

von Rahul (Gast)


Lesenswert?

ham wir wieder Hausaufgaben gemacht? Mir ist kalt...

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.