Namespaces
Variants

Standard library header <bit> (C++20)

From es.cppreference.net
Standard library headers

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)
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)
cuenta el número de 0 bits consecutivos, empezando por el bit más significativo
(plantilla de función)
cuenta el número de 1 bits consecutivos, empezando por el bit más significativo
(plantilla de función)
cuenta el número de 0 bits consecutivos, empezando por el bit menos significativo
(plantilla de función)
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)
invierte los bits en un entero
(plantilla de función)
repite/difunde un patrón de bits de longitud especificada
(plantilla de función)
comprime los bits de un operando usando una máscara (PEXT)
(plantilla de función)
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 */
  };
}