On Thu, Mar 16, 2000 at 06:33:15PM +0100, Tobias Koenig wrote: : Hallo, : : Kann mir jemand sagen, wie man unter C bei der Zahl 61696 das : höherwertige mit dem niederwertigen Byte vertauscht ???
x = 61696; x &= 0xffff; /* damit es wirklich nur zwei byte sind */ x = (x >> 8) & 0 | (x << 8); /* ich weiss jetzt nur nicht, ob die shifts mit vorzeichen sind oder nicht. */
/* eventuell: x = (0xff & (x >> 8)) | (0xff00 & (x << 8)); */
Es gibt sicher (!) etwas effizienteres .. swab() oder so aehnlich.
Ja -- man swab
#include <string.h> int x = 61696; int y; swab(&x, &y, sizeof(x));
Best regards from Dresden/Germany Viele Gruesse aus Dresden Heiko Schlittermann