Forum: Compiler & IDEs was heisst ((addr & 0xff000000)>>24)


von roboterheld (Gast)


Lesenswert?

hallo wie werden diese befehle in winavr-c behandelt ?
bin kein c-fachmann, brauche die lösung aber für eine mmc-karte!
mfg

        cmd[1] = ((addr & 0xFF000000) >>24 );
  cmd[2] = ((addr & 0x00FF0000) >>16 );
  cmd[3] = ((addr & 0x0000FF00) >>8 );

von Hans J. (hjm)


Lesenswert?

Hallo roboterheld,

  cmd[1] = ((addr & 0xFF000000) >>24 ); // Nur 4.Byte, dieses dann in 
unteres Byte schieben
  cmd[2] = ((addr & 0x00FF0000) >>16 );
  cmd[3] = ((addr & 0x0000FF00) >>8 );

wenn addr z.B. 0x12345678 enthält und Du die erste Zeile anwendest:
  cmd[1] = ((addr & 0xFF000000) >>24 );

hat cmd[1] den Inhalt 0x12

cmd[2] wäre 0x34
und cmd[3] wäre 0x56

Grüße
Hans-Josef

von roboterheld (Gast)


Lesenswert?

jup,danke.

mfg

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.