Bit manipulation (since C++20)
From cppreference.net
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) |
|
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) |
|
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 |
__cpp_lib_int_pow2
|
202002L
|
(C++20) | Integral power-of- 2 operations |
__cpp_lib_byteswap
|
202110L
|
(C++23) | std::byteswap |
See also
|
C documentation
for
Bit manipulation
|