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.
Module core.bitop
This module contains a collection of bit-level operations.
Functions
Name | Description |
---|---|
_popcnt(x)
|
Calculates the number of set bits in an integer using the X86 SSE4 POPCNT instruction. POPCNT is not available on all X86 CPUs. |
bitswap(x)
|
Reverses the order of bits in a 32-bit integer. |
bitswap(x)
|
Reverses the order of bits in a 64-bit integer. |
bsf(v)
|
Scans the bits in v starting with bit 0, looking for the first set bit. |
bsr(v)
|
Scans the bits in v from the most significant bit to the least significant bit, looking for the first set bit. |
bswap(v)
|
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. |
bswap(v)
|
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. |
bt(p, bitnum)
|
Tests the bit. (No longer an intrisic - the compiler recognizes the patterns in the body.) |
btc(p, bitnum)
|
Tests and complements the bit. |
btr(p, bitnum)
|
Tests and resets (sets to 0) the bit. |
bts(p, bitnum)
|
Tests and sets the bit. |
byteswap(x)
|
Swaps bytes in a 2 byte ushort. |
inp(port_address)
|
Reads I/O port at port_address. |
inpl(port_address)
|
Reads I/O port at port_address. |
inpw(port_address)
|
Reads I/O port at port_address. |
outp(port_address, value)
|
Writes and returns value to I/O port at port_address. |
outpl(port_address, value)
|
Writes and returns value to I/O port at port_address. |
outpw(port_address, value)
|
Writes and returns value to I/O port at port_address. |
popcnt(x)
|
Calculates the number of set bits in an integer. |
rol(value, count)
|
Bitwise rotate value left (rol ) or right (ror ) by
count bit positions.
|
ror(value, count)
|
Bitwise rotate value left (rol ) or right (ror ) by
count bit positions.
|
Structs
Name | Description |
---|---|
BitRange
|
Range over bit set. Each element is the bit number that is set. |
Authors
Don Clugston, Sean Kelly, Walter Bright, Alex Rønne Petersen, Thomas Stuart Bockman
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.