Standard library header <bit> (C++20)
From es.cppreference.net
Este encabezado es parte de la biblioteca numérica .
Tipos |
|
|
(C++20)
|
indica el endianness de los tipos escalares
(enum) |
Funciones | |
(C++20) |
reinterpretar la representación de objetos de un tipo como la de otro (plantilla de función) |
(C++23) |
invierte los bytes en el valor entero dado (plantilla de función) |
(C++20) |
comprueba si un número es una potencia entera de 2 (plantilla de función) |
(C++20) |
encuentra la potencia entera de 2 más pequeña no menor que el valor dado (plantilla de función) |
(C++20) |
encuentra la potencia entera de 2 más grande no mayor que el valor dado (plantilla de función) |
(C++20) |
encuentra el número más pequeño de bits necesario para representar el valor dado (plantilla de función) |
(C++29) |
desplaza a la izquierda sin posibilidad de comportamiento indefinido (plantilla de función) |
(C++29) |
desplaza a la derecha sin posibilidad de comportamiento indefinido (plantilla de función) |
(C++20) |
calcula el resultado de la rotación a la izquierda a nivel de bits (plantilla de función) |
(C++20) |
calcula el resultado de la rotación a la derecha a nivel de bits (plantilla de función) |
(C++20) |
cuenta el número de 0 bits consecutivos, empezando por el bit más significativo (plantilla de función) |
(C++20) |
cuenta el número de 1 bits consecutivos, empezando por el bit más significativo (plantilla de función) |
(C++20) |
cuenta el número de 0 bits consecutivos, empezando por el bit menos significativo (plantilla de función) |
(C++20) |
cuenta el número de 1 bits consecutivos, empezando por el bit menos significativo (plantilla de función) |
(C++20) |
cuenta el número de 1 bits en un entero sin signo (plantilla de función) |
(C++29) |
invierte los bits en un entero (plantilla de función) |
(C++29) |
repite/difunde un patrón de bits de longitud especificada (plantilla de función) |
(C++29) |
comprime los bits de un operando usando una máscara (PEXT) (plantilla de función) |
(C++29) |
expande los bits de un operando usando una máscara (PDEP) (plantilla de función) |
Sinopsis
namespace std {
// bit_cast
template<class To, class From>
constexpr To bit_cast(const From& from) noexcept;
// byteswap
template <class T>
constexpr T byteswap(T value) noexcept;
// integral powers of 2
template<class T>
constexpr bool has_single_bit(T x) noexcept;
template<class T>
constexpr T bit_ceil(T x);
template<class T>
constexpr T bit_floor(T x) noexcept;
template<class T>
constexpr int bit_width(T x) noexcept;
// shifting
template<class T, class S>
constexpr T shl(T x, S s) noexcept;
template<class T, class S>
constexpr T shr(T x, S s) noexcept;
// rotating
template<class T>
constexpr T rotl(T x, int s) noexcept;
template<class T>
constexpr T rotr(T x, int s) noexcept;
// counting
template<class T>
constexpr int countl_zero(T x) noexcept;
template<class T>
constexpr int countl_one(T x) noexcept;
template<class T>
constexpr int countr_zero(T x) noexcept;
template<class T>
constexpr int countr_one(T x) noexcept;
template<class T>
constexpr int popcount(T x) noexcept;
// permutation
template<class T>
constexpr T bit_reverse(T x) noexcept;
template<class T>
constexpr T bit_repeat(T x, int l);
template<class T>
constexpr T bit_compress(T x, T m) noexcept;
template<class T>
constexpr T bit_expand(T x, T m) noexcept;
// endian
enum class endian {
little = /* see description */,
big = /* see description */,
native = /* see description */
};
}