Hallo,
Kann mir jemand sagen, wie man unter C bei der Zahl 61696 das höherwertige mit dem niederwertigen Byte vertauscht ???
Ciao, Tobias -- Software is like sex: It's better when it's free Linus Torvalds
__________________________________________________________________ Do You Yahoo!? Gesendet von Yahoo! Mail - http://mail.yahoo.de Yahoo! Auktionen - gleich ausprobieren - http://auktionen.yahoo.de
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
Tobias Koenig wrote:
Hallo,
Kann mir jemand sagen, wie man unter C bei der Zahl 61696 das höherwertige mit dem niederwertigen Byte vertauscht ???
Ich stelle mir das so vor. Sollte funktionieren, wenn mit Nullen aufgefuellt wird. (Aber soviel ich weiss garantiert das keiner (?))
#define SWAPBYTES(c) (((c)>>8) & ((c)<<8))
Uli
Am Mon, 20 Mär 2000 schrieb Ulrich Küttler:
Ich stelle mir das so vor. Sollte funktionieren, wenn mit Nullen aufgefuellt wird. (Aber soviel ich weiss garantiert das keiner (?))
#define SWAPBYTES(c) (((c)>>8) & ((c)<<8))
Der Vorschlag von Heiko hat wunderbar funktioniert, trotzdem Danke für deinen Tip.
Ciao, Tobias -- Software is like sex: It's better when it's free Linus Torvalds
__________________________________________________________________ Do You Yahoo!? Gesendet von Yahoo! Mail - http://mail.yahoo.de Yahoo! Auktionen - gleich ausprobieren - http://auktionen.yahoo.de
Ulrich =?iso-8859-1?Q?K=FCttler?= ulrich.kuettler@mailbox.tu-dresden.de schrieb:
Ich stelle mir das so vor. Sollte funktionieren, wenn mit Nullen aufgefuellt wird. (Aber soviel ich weiss garantiert das keiner (?))
#define SWAPBYTES(c) (((c)>>8) & ((c)<<8))
s/&/|/
Funktioniert auf einem 32-Bit-System dann aber nur, wenn Du Dich nicht fuer die hoeherwertigen 16 Bits interessierst (da kommen die Bits 8-15 auch hin).
Holger
On Thu, 2000-03-16 at 18:33, Tobias Koenig wrote:
Kann mir jemand sagen, wie man unter C bei der Zahl 61696 das höherwertige mit dem niederwertigen Byte vertauscht ???
So: 241
Im Ernst:
unsigned short drehrumbumm(unsigned short x) { return (x >> 8) | ((x & 0x00FF) << 8); }
Eric
On Thu, 2000-03-16 at 18:33, Tobias Koenig wrote: ^^^^^^^^^^
Hmmm. Aus irgendwelchen Gründen ist die bei mir als ungelesen markiert gewesen und ich habe dazu auch keine Antworten in meinem Archiv, weshalb ich blind geantwortet habe. Sehr komisch.
Naja, vielleicht hilft es Tobias ja trotzdem ;-)
Eric
On Sat, Jun 26, 2004 at 07:13:47PM +0200, Eric Schaefer wrote:
On Thu, 2000-03-16 at 18:33, Tobias Koenig wrote:
Hi Eric,
Hmmm. Aus irgendwelchen Gründen ist die bei mir als ungelesen markiert gewesen und ich habe dazu auch keine Antworten in meinem Archiv, weshalb ich blind geantwortet habe. Sehr komisch.
Naja, vielleicht hilft es Tobias ja trotzdem ;-)
Hmm, wenn du mir jetzt noch verraten könntest was ich damals eigentlich machen wollte vielleicht... ;)
Ciao, Tobias
lug-dd@mailman.schlittermann.de