Namespaces
Variants
Actions

Bit manipulation (since C++20)

From cppreference.com
< cpp‎ | utility
 
 
 
Bit manipulation
 

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)[edit]
(C++23)
reverses the bytes in the given integer value
(function template)[edit]

Contents

Integral powers of 2
checks if a number is an integral power of 2
(function template)[edit]
(C++20)
finds the smallest integral power of 2 not less than the given value
(function template)[edit]
(C++20)
finds the largest integral power of 2 not greater than the given value
(function template)[edit]
(C++20)
finds the smallest number of bits needed to represent the given value
(function template)[edit]
Rotating
(C++20)
computes the result of bitwise left-rotation
(function template)[edit]
(C++20)
computes the result of bitwise right-rotation
(function template)[edit]
Counting
counts the number of consecutive 0 bits, starting from the most significant bit
(function template)[edit]
(C++20)
counts the number of consecutive 1 bits, starting from the most significant bit
(function template)[edit]
counts the number of consecutive 0 bits, starting from the least significant bit
(function template)[edit]
(C++20)
counts the number of consecutive 1 bits, starting from the least significant bit
(function template)[edit]
(C++20)
counts the number of 1 bits in an unsigned integer
(function template)[edit]
Endian
(C++20)
indicates the endianness of scalar types
(enum)[edit]

[edit]Notes

Feature-test macro ValueStdFeature
__cpp_lib_bit_cast201806L(C++20)std::bit_cast
__cpp_lib_bitops201907L(C++20)Bit operations
__cpp_lib_int_pow2202002L(C++20)Integral power-of-2 operations
__cpp_lib_byteswap202110L(C++23)std::byteswap

[edit]See also

C documentation for Bit manipulation
close