View source code
Display the source code in core/bitop.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

core.bitop.bswap - multiple declarations

Function bswap

Swaps bytes in a 4 byte uint end-to-end, i.e. byte 0 becomes byte 3, byte 1 becomes byte 2, byte 2 becomes byte 1, byte 3 becomes byte 0.

uint bswap (
  uint v
) pure nothrow @nogc @safe;

Example

writeln(bswap(0x01020304u)); // 0x04030201u
static uint xx = 0x10203040u;
writeln(bswap(xx)); // 0x40302010u

Function bswap

Swaps bytes in an 8 byte ulong end-to-end, i.e. byte 0 becomes byte 7, byte 1 becomes byte 6, etc. This is meant to be recognized by the compiler as an intrinsic.

ulong bswap (
  ulong v
) pure nothrow @nogc @safe;

Example

writeln(bswap(0x01020304_05060708uL)); // 0x08070605_04030201uL
static ulong xx = 0x10203040_50607080uL;
writeln(bswap(xx)); // 0x80706050_40302010uL

Authors

Don Clugston, Sean Kelly, Walter Bright, Alex Rønne Petersen, Thomas Stuart Bockman

License

Boost License 1.0