xGhost
OpenBSD Freack
Hallo
Ich hab ein 1byte element array.
Nun will ich eine int (32bit / 4byte) in dieses Array moven.
Aber nur die ersten bzw. letzen 3byte.
Nur wie kann ich das "sauber" shiften?
Ich hab so ne pseudo lösung, aber die gefählt mir nicht.
Das finde ich nicht gerade sauber,
zumal später nicht genau klar ist, ob nun alle 4byte oder nur 2byte..
dann müsste es fast mit einer while schleife gemacht werden.
Gut "tmp = digit << x" nimmt konstant zu, das könnte man schon
für die while schleiffe nehmen. aber irgendwie finde ich meinen ansatz
scheisse.
Hat jemand ne besser lösung oder idee?
Greets
Ghost
Ich hab ein 1byte element array.
Nun will ich eine int (32bit / 4byte) in dieses Array moven.
Aber nur die ersten bzw. letzen 3byte.
Nur wie kann ich das "sauber" shiften?
Ich hab so ne pseudo lösung, aber die gefählt mir nicht.
Code:
unsigned char *p;
unsigned int digit = '\x00FFFFFF'
unsigned int tmp;
tmp = digit << 16;
*p = tmp >> 8;
++p;
tmp = digit << 24;
*p = tmp >> 8;
++p;
*p = digit >> 8;
Das finde ich nicht gerade sauber,
zumal später nicht genau klar ist, ob nun alle 4byte oder nur 2byte..
dann müsste es fast mit einer while schleife gemacht werden.
Gut "tmp = digit << x" nimmt konstant zu, das könnte man schon
für die while schleiffe nehmen. aber irgendwie finde ich meinen ansatz
scheisse.
Hat jemand ne besser lösung oder idee?
Greets
Ghost