View source code
Display the source code in std/bitmanip.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 std.bitmanip
Bit-level manipulation facilities.
Functions
Name | Description |
---|---|
append
|
Takes an integral value , converts it to the given endianness, and appends
it to the given range of ubyte s (using put ) as a sequence of
T.sizeof ubyte s starting at index. hasSlicing!R must be
true .
|
bigEndianToNative
|
Converts the given value from big endian to the native endianness and
returns it. The value is given as a ubyte[n] where n is the size
of the target type. You must give the target type as a template argument,
because there are multiple types with the same size and so the type of the
argument is not enough to determine the return type.
|
bitsSet
|
Range that iterates the indices of the set bits in .
Index 0 corresponds to the least significant bit.
For signed integers, the highest index corresponds to the sign bit.
|
littleEndianToNative
|
Converts the given value from little endian to the native endianness and
returns it. The value is given as a ubyte[n] where n is the size
of the target type. You must give the target type as a template argument,
because there are multiple types with the same size and so the type of the
argument is not enough to determine the return type.
|
nativeToBigEndian
|
Converts the given value from the native endianness to big endian and
returns it as a ubyte[n] where n is the size of the given type.
|
nativeToLittleEndian
|
Converts the given value from the native endianness to little endian and
returns it as a ubyte[n] where n is the size of the given type.
|
peek
|
Takes a range of ubyte s and converts the first T.sizeof bytes to
T . The value returned is converted from the given endianness to the
native endianness. The range is not consumed.
|
read
|
Takes a range of ubyte s and converts the first T.sizeof bytes to
T . The value returned is converted from the given endianness to the
native endianness. The T.sizeof bytes which are read are consumed from
the range .
|
swapEndian
|
Swaps the endianness of the given integral value or character. |
write
|
Takes an integral value , converts it to the given endianness, and writes it
to the given range of ubyte s as a sequence of T.sizeof ubyte s
starting at index . hasSlicing!R must be true .
|
Structs
Name | Description |
---|---|
BitArray
|
An array of bits. |
DoubleRep
|
Allows manipulating the fraction, exponent, and sign parts of a double separately. The definition is: |
FloatRep
|
Allows manipulating the fraction, exponent, and sign parts of a float separately. The definition is: |
Enum values
Name | Type | Description |
---|---|---|
bitfields
|
Allows creating bit fields inside structs and classes. | |
taggedClassRef
|
This string mixin generator allows one to create tagged class reference inside structs and classes. | |
taggedPointer
|
This string mixin generator allows one to create tagged pointers inside structs and classes. |
Authors
Walter Bright, Andrei Alexandrescu, Jonathan M Davis, Alex Rønne Petersen, Damian Ziemba Amaury SECHET