From heiko@schlittermann.de Sat Mar 18 21:31:59 2000 From: Heiko Schlittermann To: lug-dd@mailman.schlittermann.de Subject: Re: [Lug-dd] C-Frage Date: Sat, 18 Mar 2000 21:29:06 +0100 Message-ID: <20000318212906.B3249@schlittermann.de> In-Reply-To: <00031618350404.00495@P200> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7813177588969253908==" --===============7813177588969253908== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit 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 int x = 61696; int y; swab(&x, &y, sizeof(x)); Best regards from Dresden/Germany Viele Gruesse aus Dresden Heiko Schlittermann -- SCHLITTERMANN --------------------- internet & unix support - Debian 2.x CD Heiko Schlittermann HS12-RIPE finger:heiko(a)schlittermann.de - pgp: A1 7D F6 7B 69 73 48 35 E1 DE 21 A7 A8 9A 77 92 ------- --===============7813177588969253908==--