View source code Display the source code in core/bitop.d from which this page was generated on github. 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. Page wiki View or edit the community-maintained wiki page associated with this page.

Module core.bitop

This module contains a collection of bit-level operations.

Functions

Name Description
bitswap Reverses the order of bits in a 32-bit integer.
bsf Scans the bits in v starting with bit 0, looking for the first set bit.
bsr Scans the bits in v from the most significant bit to the least significant bit, looking for the first set bit.
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.
bt Tests the bit. (No longer an intrisic - the compiler recognizes the patterns in the body.)
btc Tests and complements the bit.
btr Tests and resets (sets to 0) the bit.
bts Tests and sets the bit.
inp Reads I/O port at port_address.
inpl Reads I/O port at port_address.
inpw Reads I/O port at port_address.
outp Writes and returns value to I/O port at port_address.
outpl Writes and returns value to I/O port at port_address.
outpw Writes and returns value to I/O port at port_address.
popcnt Calculates the number of set bits in a 32-bit integer.
volatileLoad Read/write value from/to the memory location indicated by ptr.
volatileStore Read/write value from/to the memory location indicated by ptr.
_popcnt Calculates the number of set bits in a 32-bit integer using the X86 SSE4 POPCNT instruction. POPCNT is not available on all X86 CPUs.

Authors

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

License

Boost License 1.0

Comments