|
|
(C++20) | ||||
(C++23) | ||||
Integral powers of2 | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
Rotating | ||||
(C++20) | ||||
(C++20) | ||||
Counting | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
popcount (C++20) | ||||
Endian | ||||
(C++20) |
Defined in header <bit> | ||
template<class T> constexprint popcount( T x)noexcept; | (since C++20) | |
Returns the number of1 bits in the value ofx.
This overload participates in overload resolution only ifT
is an unsigned integer type (that is,unsignedchar,unsignedshort,unsignedint,unsignedlong,unsignedlonglong, or an extended unsigned integer type).
Contents |
x | - | value of unsigned integer type |
The number of1 bits in the value ofx.
The namepopcount
is a contraction for “population count”.
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_bitops | 201907L | (C++20) | Bit operations |
#include <bit>#include <bitset>#include <cstdint>#include <iostream> static_assert(std::popcount(0xFULL)==4); int main(){for(conststd::uint8_t x:{0,0b00011101,0b11111111})std::cout<<"popcount( "<<std::bitset<8>(x)<<" ) = "<< std::popcount(x)<<'\n';}
Output:
popcount( 00000000 ) = 0popcount( 00011101 ) = 4popcount( 11111111 ) = 8
(C++20) | counts the number of consecutive0 bits, starting from the most significant bit (function template)[edit] |
(C++20) | counts the number of consecutive1 bits, starting from the most significant bit (function template)[edit] |
(C++20) | counts the number of consecutive0 bits, starting from the least significant bit (function template)[edit] |
(C++20) | counts the number of consecutive1 bits, starting from the least significant bit (function template)[edit] |
(C++20) | checks if a number is an integral power of2 (function template)[edit] |
returns the number of bits set totrue (public member function of std::bitset<N> )[edit] | |
checks if all, any or none of the bits are set totrue (public member function of std::bitset<N> )[edit] |