| delorie.com/archives/browse.cgi | search |
| From: | Andrew Crabtree <andrewc AT typhoon DOT rose DOT hp DOT com> |
| Message-Id: | <199706021721.AA028672063@typhoon.rose.hp.com> |
| Subject: | Re: big endian class |
| To: | keithh AT zetnet DOT co DOT uk (Keith Hull) |
| Date: | Mon, 02 Jun 1997 10:21:02 PDT |
| Cc: | djgpp AT delorie DOT com |
| In-Reply-To: | <1997060116282677565@zetnet.co.uk>; from "Keith Hull" at Jun 1, 97 4:28 pm |
> or
>
> dummy = (data & 0x000000ff) << 24;
> dummy = dummy | ((data & 0x0000ff00) << 8);
> dummy = dummy | ((data & 0x00FF0000) >> 8);
> dummy = dummy | ((data & 0xFF000000) >> 24);
Even thats more than necessary. From Intels action code for
bswap
dst = (rotate_left(src 8) & 0x00FF00FF)
+ (rotate_left(src 24) & 0xFF00FF00)
Of course, you need a bitwise rotate operator, which C doesn't have.
Inline asm should work though.
Andrew
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |