Bit manipulation (since C++20)
Provides several function templates to access, manipulate, and process individual bits and bit sequences.
Defined in header <bit> |
|
|---|---|
Defined in namespace std |
|
|
(C++20) | reinterpret the object representation of one type as that of another (function template) |
|
(C++23) | reverses the bytes in the given integer value (function template) |
Integral powers of 2 |
|
|
(C++20) | checks if a number is an integral power of 2 (function template) |
|
(C++20) | finds the smallest integral power of 2 not less than the given value (function template) |
|
(C++20) | finds the largest integral power of 2 not greater than the given value (function template) |
|
(C++20) | finds the smallest number of bits needed to represent the given value (function template) |
Shifting (since C++29) |
|
|
(C++29) | shifts to the left without the possibility of undefined behavior (function template) |
|
(C++29) | shifts to the right without the possibility of undefined behavior (function template) |
Rotating |
|
|
(C++20) | computes the result of bitwise left-rotation (function template) |
|
(C++20) | computes the result of bitwise right-rotation (function template) |
Counting |
|
|
(C++20) | counts the number of consecutive 0 bits, starting from the most significant bit (function template) |
|
(C++20) | counts the number of consecutive 1 bits, starting from the most significant bit (function template) |
|
(C++20) | counts the number of consecutive 0 bits, starting from the least significant bit (function template) |
|
(C++20) | counts the number of consecutive 1 bits, starting from the least significant bit (function template) |
|
(C++20) | counts the number of 1 bits in an unsigned integer (function template) |
Permutation (since C++29) |
|
|
(C++29) | reverses the bits in an integer (function template) |
|
(C++29) | repeats/broadcasts a bit pattern of specified length (function template) |
|
(C++29) | compresses bits of an operand using a mask (PEXT) (function template) |
|
(C++29) | expands bits from an operand using a mask (PDEP) (function template) |
Endian |
|
|
(C++20) | indicates the endianness of scalar types (enum) |
Notes
| Feature-test macro | Value | Std | Feature |
|---|---|---|---|
__cpp_lib_bit_cast | 201806L | (C++20) |
std::bit_cast |
__cpp_lib_bitops | 201907L | (C++20) | Bit operations |
202606L | (C++29) | Better shifting | |
202607L | (C++29) | Bit permutation | |
__cpp_lib_byteswap | 202110L | (C++23) |
std::byteswap |
__cpp_lib_int_pow2 | 202002L | (C++20) | Integral power-of-2 operations |
__cpp_lib_stdbit_h | 202603L | (C++26) | Compatibility header <stdbit.h> for C bitwise operations |
See also
| C documentation for Bit manipulation |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/bit