BitOps¶
Usage
use BitOps;
or
import BitOps;
Bitwise operations implemented using C intrinsics when possible.
- proc clz(x: integral)¶
Count leading zeros in x.
- Returns:
the number of 0 bits before the most significant 1 bit in x
- Return type:
x.type
- proc ctz(x: integral)¶
Count trailing zeros in x.
- Returns:
the number of 0 bits after the least significant 1 bit in x
- Return type:
x.type
- proc popCount(x: integral)¶
Find the population count of x.
- Returns:
the number of 1 bits set in x as x.type
- Return type:
x.type
- proc parity(x: integral)¶
Find the parity of x.
- Returns:
0 – when an even number of bits are set in x
1 – when an odd number of bits are set in x
- Return type:
x.type
- proc rotl(x: integral, n: integral)¶
Rotate x left.
- Arguments:
x – integral of size bits
n – rotation amount, must be less than bits
- Returns:
x rotated left by n bits
- Return type:
x.type
- proc rotr(x: integral, n: integral)¶
Rotate x right.
- Arguments:
x – integral of size bits
n – rotation amount, must be less than bits
- Returns:
x rotated right by n bits
- Return type:
x.type